Панель и узел на одном сервере
Узел может работать на том же сервере, что и панель. NX этого не запрещает, и они не мешают друг другу. Для сервиса, который вы продаёте, это не рекомендуется, и эта страница сначала объясняет почему, а потом — как.
Когда это допустимо
- Лаборатория или тестовая установка.
- Демонстрация.
- Небольшой сервис на одном сервере, когда вы согласны, что у панели и трафика один адрес и одна судьба.
Для всего, что вам было бы жаль потерять, дайте панели отдельный сервер.
Почему это не рекомендуется
- Адрес панели становится публичным. Адрес узла попадает в каждую ссылку подписки и каждый клиентский профиль, которые вы выдаёте. Каждый пользователь и любой, кто собирает такие ссылки, узнаёт, где ваша панель. Если этот адрес потом заблокируют, вы теряете не один узел, а панель и вместе с ней все адреса подписок.
- Одна машина — одна судьба. Пользовательский трафик идёт всплесками и не имеет потолка. Загруженный узел может отнять у панели процессор, память или канал, а упавшая панель перестаёт отдавать подписки и пользователям всех остальных узлов.
- Одноразовое смешивается с незаменимым. Узел задуман так, чтобы его можно было выбросить и установить заново. База панели — то, без чего флот не восстановить.
- Он всё равно считается узлом в вашей лицензии.
Настройка скриптом установки
Они ставятся в разные каталоги и работают как разные службы: программы в /opt/nx-panel и /opt/nx-node, их состояние в /var/opt/nx-panel (база, bin/ и backups/) и /var/opt/nx-node (certs/ и cache/).
Установите панель и пройдите мастер настройки как обычно.
В панели добавьте узел с адресом
127.0.0.1и портом 62050.Откройте у узла окно Установка и скопируйте команду с вкладки Вручную.
Выполните её на том же сервере, добавив в конец
--listen 127.0.0.1:62050, чтобы управляющий порт узла был доступен только с этой машины:bashcurl -fsSL https://PANEL/install-node.sh | bash -s -- \ --panel PANEL --token TOKEN --port 62050 --listen 127.0.0.1:62050
Если панель ещё на своём самоподписанном сертификате, показанная ею команда несёт ключ сертификата (--pinnedpubkey и --pin); оставьте оба. Панелям v0.0.3 и более ранних версий вместо этого нужны -k и --insecure, как описано в Добавление узла.
- Откройте узел и добавьте публичный адрес сервера в Адреса для ссылок. Когда этот список пуст, ссылки используют адрес узла, а от
127.0.0.1вашим пользователям никакой пользы.
Порт 62050 не выходит за пределы сервера, поэтому правило файрвола для него не нужно. Открывайте только порты инбаундов узла.
Настройка через Docker
В репозитории панели есть готовый стек docker/panel-and-node: панель на SQLite и узел рядом с ней. Узлу для запуска нужен сертификат панели, а панель показывает этот сертификат только после появления узла, поэтому стек запускается в два шага:
git clone https://github.com/nx-panel/panel
cd panel/docker/panel-and-node
docker compose up -d panel
docker compose logs panel | grep setup # open the link, finish the wizardЗатем добавьте в панели узел с адресом 127.0.0.1 и портом 62050. Откройте у него окно Установка и сохраните сертификат из поля Сертификат mTLS как ./certs/panel_ca.pem рядом с файлом compose. Добавьте публичный адрес сервера в Адреса для ссылок узла, как описано выше. Запустите узел:
docker compose up -d nodeОба контейнера используют сеть хоста. Поэтому, в отличие от других стеков Docker, этот не закрепляет порт панели: порт, выбранный в мастере настройки, используется напрямую, как при установке скриптом. Управляющий порт узла не покидает машину.
Связанные страницы
- Добавление узла — узлы на собственных серверах.
- Узлы — адреса для ссылок и остальные настройки узла.
