---
title: 아키텍처
description: NexCMP의 구성 요소(도메인, nginx, 패널 및 워커 서비스, 그리고 이들이 연결되는 모든 시스템)와 각 경로가 사용하는 포트 및 데이터에 대한 설명입니다.
url: https://nexcmp.com/ko/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 아키텍처 {#architecture}

> **관리자 위치:** 참조 페이지입니다. 여기에 설명된 서비스는 `sudo nexcmp status`로 확인할 수 있으며, 연결은 Infrastructure 및 System › Settings에서 구성합니다.

## 구조도 {#the-picture}

![NexCMP 아키텍처: 고객은 DNS와 선택적으로 Cloudflare를 통해 nginx에 접속하고, nginx는 포트 3000에서 패널로 프록시하며, 패널과 워커는 CloudStack, Proxmox VE, iDRAC, Ceph, 결제 게이트웨이, SMTP 및 AI 공급자에 호출을 보내고, VPN 및 IPv6 프록시 노드는 패널로 다시 통신합니다.](https://nexcmp.com/ko/docs/images/infrastructure/architecture.svg)

### 텍스트로 보는 동일한 다이어그램 {#the-same-diagram-in-words}

1. 고객이나 관리자가 `https://cloud.example.com`(포털), `https://cloud.example.com/admin`(관리자 콘솔)을 열거나 REST API를 호출합니다. DNS는 이름을 서버 또는 프록시 역할을 하는 Cloudflare로 지정합니다.
2. 패널 서버의 **nginx**는 포트 80(리디렉션 및 인증서 갱신)과 443(TLS)에서 수신 대기하고 모든 요청을 `127.0.0.1:3000`의 **panel**로 전달합니다. 설치 마법사 완료 후 패널은 루프백 인터페이스에서만 수신 대기합니다.
3. **panel**(`nexcmp.service`)은 고객 포털, 관리자 콘솔, REST API, 설치 마법사 및 노드에 필요한 다운로드(에이전트 바이너리, 설치 스크립트, `cmp` 커맨드라인 도구)를 제공합니다. 또한 하루에 한 번 라이선스를 확인합니다.
4. **worker**(`nexcmp-vmd.service`)는 로컬 전용인 `127.0.0.1:8112`에서 수신 대기합니다. 프로비저닝 작업, CloudStack 및 Proxmox VE와의 동기화, 빌링 틱, 대역폭 수집, 브라우저 콘솔 연결 등 시간이 걸리거나 일정에 따라 실행되어야 하는 모든 작업을 수행합니다.
5. 이 두 프로세스에서 NexCMP는 외부로 호출을 보냅니다: **CloudStack**(관리 API), **Proxmox VE**(포트 8006의 API, 인증서 고정), **Dell iDRAC**(관리 네트워크의 HTTPS 기반 Redfish), **Ceph RGW**(HTTPS 기반 S3 및 Admin Ops), **결제 게이트웨이**(웹훅 URL도 호출하는 Stripe, PayPal, USDT 및 계좌 이체 제공업체), **SMTP 서버**, OpenAI 호환 API를 제공하는 **AI 공급자**, 그리고 선택적으로 **Telegram**.
6. **VPN 노드**는 `cmp-agent`을(를) 실행합니다. 각 노드는 일회용 토큰으로 한 번 등록한 후 HTTPS를 통해 5초마다 패널에 하트비를 보내고 응답으로 구성을 받습니다. **IPv6 프록시 노드**는 패널이 SSH를 통해 한 번 설치한 후 패널에서 구성을 가져옵니다.
7. 상태는 SQLite 데이터베이스와 `/var/lib/nexcmp`의 일부 파일에 저장됩니다. CloudStack, Proxmox, S3, iDRAC 및 AI 공급자의 자격 증명은 동일한 영역에 있는 마스터 키 파일로 암호화(AES-256-GCM)되어 저장됩니다.

## 서비스 및 프로세스 {#services-and-processes}

| 프로세스 | 실행 권한 | 수신 대기 | 역할 |
|---|---|---|---|
| `nginx` | root (workers `www-data`) | 80, 443 | TLS, 리디렉션, 패널 프록시 |
| `nexcmp` | `nexcmp` | 3000 (최초 설치 시 모든 인터페이스, 이후 `127.0.0.1`) | 포털, 관리자 콘솔, API, 마법사, 다운로드 |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | 작업, 동기화, 빌링, 대역폭, 콘솔 |
| `nexcmp-update` | root | none | 관리자 콘솔 요청에 따른 업데이트 적용 (패스 유닛이 요청 대기) |
| `cmp-agent` (VPN 노드) | root | VPN 리스너 포트 | 패널에 보고, 공인 IPv4에서 프록시 리스너 실행 |

패널과 워커는 Linux capability 없이 일반 사용자로 실행되며, `/var/lib/nexcmp` 및 `/var/log/nexcmp`을 제외하고는 읽기 전용 파일 시스템을 사용합니다. root, Docker, 별도의 데이터베이스, Redis가 필요하지 않습니다.

## 파일 및 위치 {#files-and-where-they-are}

| 경로 | 내용 |
|---|---|
| `/opt/nexcmp` | 프로그램: 릴리스, `bin/`, 템플릿 빌더 등의 공유 파일. root 소유, 서비스에서는 읽기 전용. |
| `/etc/nexcmp` | 설치 프로그램 설정(`install.conf`), 포트 및 바인드(`nexcmp.env`). |
| `/var/lib/nexcmp` | SQLite 데이터베이스, 업로드된 브랜딩, 에이전트 다운로드 폴더, 라이선스 상태, 마스터 키 파일. 반드시 백업하세요. |
| `/var/log/nexcmp` | 로그. |

[백업 및 복원](https://nexcmp.com/ko/docs/getting-started/backup-and-restore/)을 참고하세요. 마스터 키 파일은 데이터베이스와 함께 백업해야 하며, 그렇지 않으면 복원된 데이터베이스가 저장된 자격 증명을 해독할 수 없습니다.

## 통신 주체 {#who-connects-to-whom}

| 방향 | 경로 | 포트 | 참고 |
|---|---|---|---|
| 고객에서 패널로 | 인터넷, DNS, 선택적 Cloudflare, nginx | 443 | [DNS 및 Cloudflare](https://nexcmp.com/ko/docs/getting-started/dns-and-cloudflare/)를 참고하세요. |
| 패널에서 라이선스 서버로 | `nexcmp.com` | 443 | 활성화, 일일 점검 및 업데이트. |
| 패널에서 CloudStack으로 | API | 443 또는 8080 | VM 콘솔, 대역폭 및 Kubernetes 기능은 동일한 엔드포인트를 사용합니다. |
| 패널에서 Proxmox VE로 | API 및 WebSocket 콘솔 | 8006 | SHA-256으로 고정된 인증서. |
| 패널에서 iDRAC으로 | Redfish | 443, VNC 5901 | 관리 네트워크 전용. |
| iDRAC에서 ISO 서버로 | HTTP | 사용자 지정 포트 | iDRAC가 ISO를 가져옵니다. |
| 패널에서 Ceph RGW로 | Admin Ops | 443 | |
| 패널에서 SMTP로 | SMTP | 587 또는 465 | |
| 패널에서 AI 제공업체로 | HTTPS | 443 | AI 모듈이 켜져 있을 때만 해당됩니다. |
| 결제 게이트웨이에서 패널로 | 웹훅 | 443 | Stripe 및 PayPal 콜백. |
| 노드에서 패널로 | `cmp-agent` | 443 | 등록, 하트비트, 업그레이드. |
| 패널에서 IPv6 프록시 노드로 | SSH | 입력한 포트 | 최초 1회 설치 전용. |

## 중요한 이유 {#why-it-matters}

- **접속할 수 있는 패널은 공격당할 수 있는 패널입니다.** 설정 마법사가 완료되면 포트 3000을 닫아두세요. TLS가 활성화되면 설치 프로그램이 자동으로 처리합니다.
- **무엇이든 생성하고 과금하려면 워커가 실행 중이어야 합니다.** `sudo nexcmp status`은 두 서비스와 헬스 체크를 모두 보여줍니다.
- **아웃바운드 방화벽을 계획하세요.** 패널 서버의 아웃바운드 트래픽이 필터링되는 경우, 위 표의 목적지를 허용해야 합니다.
- **관리 트래픽은 공용 경로를 우회합니다.** CloudStack, Proxmox VE, iDRAC 및 Ceph에 대한 연결은 nginx나 Cloudflare를 거치지 않고 패널 서버에서 해당 시스템으로 직접 연결됩니다.
