Обзор развертывания RabbitMQ на сервере¶
Предварительные требования и базовые условия¶
Развертывание требует операционной системы Linux на базе дистрибутива Ubuntu со следующими характеристиками:
-
Операционная система: Ubuntu
-
Привилегии: Для установки и конфигурации требуется доступ root.
-
Доменная зона:
hostkey.in -
Требуемые порты:
-
Внутренний порт управления:
15672 -
Внешний порт HTTPS:
443
FQDN итоговой панели¶
Интерфейс управления RabbitMQ доступен через полное доменное имя (FQDN), формируемое с использованием префикса, специфичного для сервера, и его идентификатора. Формат URL:
rabbitmq<Server ID>.hostkey.in:443
Где <Server ID> — уникальный идентификатор конкретного экземпляра сервера.
Процесс установки приложения¶
Сервер RabbitMQ устанавливается непосредственно в операционную систему хоста с использованием нативного пакетного менеджера. Процесс включает:
-
Обновление локального кэша apt.
-
Установка пакета
rabbitmq-server. -
Запуск и включение системного сервиса
rabbitmq-serverв systemd для запуска при старте системы. -
Активация плагина
rabbitmq_managementдля предоставления веб-интерфейса. -
Настройка слушателя управления для привязки к адресу
127.0.0.1на порту15672. -
Создание пользователя администратора и настройка его разрешений.
Установленная версия соответствует последней версии, доступной в репозиториях Ubuntu на момент выполнения команды.
Базы данных¶
RabbitMQ использует свой внутренний механизм хранения для очередей сообщений и метаданных. Конфигурация устанавливает следующее:
-
Виртуальный хост:
/ -
Учетные данные пользователя:
-
Имя пользователя:
root -
Пароль: Настраивается через пароль SSH системы.
-
Разрешения: Пользователю
rootпредоставлены полные разрешения (.*) на виртуальном хосте/для операций конфигурации, записи и чтения.
Контейнеры Docker и их развертывание¶
Инфраструктура обратного прокси-сервера развертывается с помощью Docker Compose для управления завершением SSL-сессий и маршрутизацией. Детали развертывания:
-
Каталог:
/root/nginx -
Файл compose:
/root/nginx/compose.yml -
Сервис:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Тома:
-
nginx_secrets: Внешний том, монтированный в/etc/letsencryptвнутри контейнера. -
Каталог хоста
/data/nginx/user_conf.d, монтированный в/etc/nginx/user_conf.dвнутри контейнера. -
DNS-серверы:
-
1.1.1.1 -
8.8.8.8 -
9.9.9.9
Прокси-серверы¶
Приложение использует контейнер Nginx с интеграцией Certbot для обработки HTTPS-трафика и управления SSL-сертификатами.
-
Образ контейнера:
jonasal/nginx-certbot:latest -
Электронная почта для Certbot:
hkadm@hostkey.com -
Файл окружения:
/data/nginx/nginx-certbot.env -
Место размещения конфигурации: Конфигурации пользователя Nginx хранятся в каталоге
/data/nginx/user_conf.d. -
Логика маршрутизации: Специфичный конфигурационный файл Nginx с именем
<prefix><Server ID>.hostkey.in.confобновляется для проксирования запросов к внутреннему интерфейсу управления RabbitMQ. -
Директива
proxy_passнастроена на перенаправление трафика наhttp://127.0.0.1:15672. -
Внешний путь
/напрямую сопоставляется с внутренним интерфейсом управления RabbitMQ.
Расположение файлов конфигурации и данных¶
Следующие пути к файлам содержат основную конфигурацию и данные для развертывания:
| Компонент | Путь к файлу / каталог | Описание |
|---|---|---|
| Конфигурация RabbitMQ | /etc/rabbitmq/rabbitmq.conf | Основной файл конфигурации сервиса RabbitMQ. |
| Nginx Compose | /root/nginx/compose.yml | Файл Docker Compose, определяющий обратный прокси. |
| Конфигурации пользователя Nginx | /data/nginx/user_conf.d | Каталог, содержащий конфигурации конкретных сайтов. |
| Секреты SSL | /data/nginx (монтаж в /etc/letsencrypt) | Каталог для SSL-сертификатов и ключей Let's Encrypt. |
| Переменные окружения Certbot | /data/nginx/nginx-certbot.env | Переменные окружения для контейнера Certbot. |
Доступные порты для подключения¶
Система открывает следующие порты для доступа к приложению:
| Порт | Протокол | Сервис | Область доступа |
|---|---|---|---|
443 | HTTPS | Обратный прокси Nginx | Публичный |
15672 | TCP | Веб-интерфейс управления RabbitMQ | Только Localhost (127.0.0.1) |
Запуск, остановка и обновление¶
Управление сервисами основного приложения и прокси-сервера осуществляется соответственно через systemd и Docker Compose.
Управление сервисом RabbitMQ:
-
Запуск/Перезапуск:
systemctl restart rabbitmq-server -
Статус:
systemctl status rabbitmq-server -
Включение при загрузке:
systemctl enable rabbitmq-server
Управление прокси Docker:
-
Запуск/Перезапуск:
docker compose up -d(выполняется из каталога/root/nginx) -
Остановка:
docker compose down(выполняется из каталога/root/nginx) -
Статус:
docker compose ps(выполняется из каталога/root/nginx)