---
title: Архитектура
description: Устройство NexCMP: домен, nginx, службы панели и worker, внешние системы, а также используемые порты и потоки данных.
url: https://nexcmp.com/ru/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Архитектура {#architecture}

> **Где найти в панели:** это справочная страница. Описанные службы можно проверить с помощью `sudo nexcmp status`; подключения настраиваются в Infrastructure и System › Settings.

## Схема {#the-picture}

![Архитектура NexCMP: клиенты обращаются к nginx через DNS и при необходимости Cloudflare, nginx проксирует запросы к панели на порт 3000, панель и worker обращаются к CloudStack, Proxmox VE, iDRAC, Ceph, платежным шлюзам, SMTP и AI-провайдеру, а узлы VPN и IPv6-прокси передают данные обратно в панель](https://nexcmp.com/ru/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) и перенаправляет все запросы к **panel** на `127.0.0.1:3000`. После завершения мастера первоначальной настройки панель слушает только loopback-интерфейс.
3. Служба **panel** (`nexcmp.service`) отвечает за клиентский портал, панель администратора, REST API, мастер настройки и файлы для загрузки на узлы (бинарный файл агента, скрипт установки, CLI-утилиту `cmp`). Она также проверяет лицензию раз в сутки.
4. Служба **worker** (`nexcmp-vmd.service`) слушает порт `127.0.0.1:8112` только локально. Она выполняет фоновые и периодические задачи: подготовку ресурсов, синхронизацию с CloudStack и Proxmox VE, биллинговые циклы, сбор статистики по трафику и подключения к консоли в браузере.
5. Из этих двух процессов NexCMP выполняет внешние вызовы: **CloudStack** (management API), **Proxmox VE** (API на порту 8006, pinning сертификата), **Dell iDRAC** (Redfish через HTTPS в сети управления), **Ceph RGW** (S3 и Admin Ops через HTTPS), **платежные шлюзы** (Stripe, PayPal, USDT и провайдеры банковских переводов, отправляющие вебхуки), **ваш SMTP-сервер**, **AI-провайдер** с OpenAI-совместимым API и опционально **Telegram**.
6. **Узлы VPN** работают под управлением `cmp-agent`. Каждый узел регистрируется один раз по одноразовому токену, затем каждые 5 секунд отправляет heartbeat по HTTPS в панель и получает конфигурацию в ответе. **Узлы IPv6-прокси** устанавливаются панелью один раз по SSH, после чего запрашивают свою конфигурацию у панели.
7. Состояние хранится в базах данных SQLite и нескольких файлах в каталоге `/var/lib/nexcmp`. Учетные данные CloudStack, Proxmox, S3, iDRAC и AI-провайдера хранятся в зашифрованном виде (AES-256-GCM) с мастер-ключами в том же каталоге.

## Службы и процессы {#services-and-processes}

| Процесс | Пользователь | Слушает | Назначение |
|---|---|---|---|
| `nginx` | root (воркеры `www-data`) | 80, 443 | TLS, редирект, проксирование к панели |
| `nexcmp` | `nexcmp` | 3000 (все интерфейсы при первой установке, затем `127.0.0.1`) | Портал, панель администратора, API, мастер настройки, загрузки |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | Задачи, синхронизация, биллинг, трафик, консоль |
| `nexcmp-update` | root | нет | Применяет обновления по запросу панели администратора (path unit ожидает запрос) |
| `cmp-agent` (на VPN-узлах) | root | порты прослушивания VPN | Передает данные в панель, запускает прокси-листенеры на публичных IPv4-адресах |

Панель и воркер работают от имени обычного пользователя без каких-либо Linux capabilities, с файловой системой только для чтения, за исключением `/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/ru/docs/getting-started/backup-and-restore/). Файлы мастер-ключа необходимо сохранять вместе с базами данных, иначе восстановленная база данных не сможет расшифровать сохраненные учетные данные.

## Кто к кому подключается {#who-connects-to-whom}

| Направление | Путь | Порт | Примечания |
|---|---|---|---|
| От клиента к панели | Интернет, DNS, опционально Cloudflare, nginx | 443 | См. [DNS и Cloudflare](https://nexcmp.com/ru/docs/getting-started/dns-and-cloudflare/). |
| От панели к серверу лицензий | `nexcmp.com` | 443 | Активация, ежедневная проверка и обновления. |
| От панели к CloudStack | API | 443 или 8080 | Консоль ВМ, учет трафика и функции 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-модуль. |
| От платежного шлюза к панели | Webhook | 443 | Обратные вызовы Stripe и PayPal. |
| От узла к панели | `cmp-agent` | 443 | Регистрация, heartbeat, обновление. |
| От панели к прокси-узлу IPv6 | SSH | указанный вами порт | Только при первичной установке. |

## Почему это важно {#why-it-matters}

- **Доступная панель — потенциальная цель для атаки.** Держите порт 3000 закрытым после завершения работы мастера настройки. При активном TLS установщик делает это автоматически.
- **Воркер должен быть запущен**, чтобы создавать ресурсы и выполнять тарификацию. `sudo nexcmp status` показывает обе службы и проверку работоспособности.
- **Настройте исходящий межсетевой экран.** Если исходящий трафик сервера панели фильтруется, разрешите адреса назначения из таблицы выше.
- **Трафик управления не проходит через публичную сеть.** Подключения к CloudStack, Proxmox VE, iDRAC и Ceph идут напрямую с сервера панели к этим системам, минуя nginx и Cloudflare.
