Перейти к содержанию

Обзор развертывания 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.

Процесс установки приложения

Развертывание выполняется в несколько этапов:

  1. Подготовка среды: Установка Docker и создание необходимых директорий (/opt/nats/conf, /opt/nats/data).

  2. Настройка конфигурации: Создание файла nats-server.conf с параметрами портов, авторизации (token или user/password) и настройками JetStream.

  3. Развертывание контейнера: Запуск Docker-контейнера NATS через системную службу systemd.

  4. Настройка проксирования: Настройка 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 необходимо выполнить следующие действия:

  1. Обновить образ Docker:

    docker pull nats:latest
    

  2. Перезапустить службу для применения изменений:

    systemctl restart nats
    

Расположение конфигурационных файлов и данных

  • Конфигурация 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

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×