Обзор развертывания NATS на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки пакетов и управления Docker.
-
Сетевые параметры:
-
Доступ к интернету для загрузки образов Docker.
-
Открытые порты в брандмауэре (см. раздел "Доступные порты").
FDQN итоговой панели на домене hostkey.in¶
Для доступа к веб-интерфейсу мониторинга используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | nats |
| Домен | hostkey.in |
| Полный шаблон | nats{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые приложением:
-
/opt/nats/conf— конфигурационные файлы NATS. -
/opt/nats/data— данные приложения (включая JetStream, если включен). -
/root/nginx— конфигурация прокси-сервера для SSL. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка среды: Установка Docker и создание необходимых директорий (
/opt/nats/conf,/opt/nats/data). -
Настройка конфигурации: Создание файла
nats-server.confс параметрами портов, авторизации (token или user/password) и настройками JetStream. -
Развертывание контейнера: Запуск Docker-контейнера NATS через системную службу
systemd. -
Настройка проксирования: Настройка Nginx для обеспечения доступа к HTTP-интерфейсу мониторинга по защищенному протоколу HTTPS.
Права доступа и безопасность¶
-
Приложение работает в изолированном Docker-контейнере.
-
Конфигурационный файл монтируется в режиме "только чтение" (
ro). -
Для управления жизненным циклом сервиса используется
systemd. -
Доступ к веб-интерфейсу осуществляется через прокси-сервер с использованием SSL-сертификатов.
Базы данных¶
Приложение может использовать встроенную систему хранения JetStream для обеспечения персистентности (постоянства) данных. Настройки хранилища:
-
Путь:
/dataвнутри контейнера (соответствует/opt/nats/dataна хосте). -
Лимиты памяти: Настраивается через
max_memory_store. -
Лимиты диска: Настраивается через
max_file_store.
Контейнеры Docker и их запуск¶
NATS Server¶
Контейнер запускается как системная служба nats.service.
| Параметр | Значение |
|---|---|
| Образ | nats:latest |
| Имя контейнера | nats |
| Порты (хост:контейнер) | 4222:4222 (клиентский), 8222:8222 (HTTP мониторинг) |
| Тома (volumes) | /opt/nats/conf/nats-server.conf:/etc/nats/nats-server.conf:ro/opt/nats/data:/data |
| Политика перезапуска | always (через systemd) |
Nginx Certbot¶
Контейнер используется для управления SSL-сертификатами и проксирования трафика.
| Параметр | Значение |
|---|---|
| Образ | jonasal/nginx-certbot:latest |
| Сеть | host |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Политика перезапуска | unless-stopped |
Инструкция по обновлению приложения¶
Для обновления основного приложения NATS необходимо выполнить следующие действия:
-
Обновить образ Docker:
-
Перезапустить службу для применения изменений:
Расположение конфигурационных файлов и данных¶
-
Конфигурация NATS:
/opt/nats/conf/nats-server.conf -
Данные приложения:
/opt/nats/data -
Конфигурация проксирования:
/data/nginx/user_conf.d/{prefix}{Server_ID}.hostkey.in.conf
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
4222 | Клиентское подключение (NATS Protocol) | TCP |
8222 | HTTP интерфейс мониторинга | TCP/HTTP |
443 | Доступ через HTTPS (через Nginx) | TCP/HTTPS |
Запуск, остановка приложения¶
Управление сервисом осуществляется через системный менеджер:
-
Запуск:
systemctl start nats -
Остановка:
systemctl stop nats -
Статус:
systemctl status nats