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

Обзор развертывания RabbitMQ на сервере

Предварительные требования и базовые условия

Развертывание требует операционной системы Linux на базе дистрибутива Ubuntu со следующими характеристиками:

  • Операционная система: Ubuntu

  • Привилегии: Для установки и конфигурации требуется доступ root.

  • Доменная зона: hostkey.in

  • Требуемые порты:

  • Внутренний порт управления: 15672

  • Внешний порт HTTPS: 443

FQDN итоговой панели

Интерфейс управления RabbitMQ доступен через полное доменное имя (FQDN), формируемое с использованием префикса, специфичного для сервера, и его идентификатора. Формат URL:

rabbitmq<Server ID>.hostkey.in:443

Где <Server ID> — уникальный идентификатор конкретного экземпляра сервера.

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

Сервер RabbitMQ устанавливается непосредственно в операционную систему хоста с использованием нативного пакетного менеджера. Процесс включает:

  1. Обновление локального кэша apt.

  2. Установка пакета rabbitmq-server.

  3. Запуск и включение системного сервиса rabbitmq-server в systemd для запуска при старте системы.

  4. Активация плагина rabbitmq_management для предоставления веб-интерфейса.

  5. Настройка слушателя управления для привязки к адресу 127.0.0.1 на порту 15672.

  6. Создание пользователя администратора и настройка его разрешений.

Установленная версия соответствует последней версии, доступной в репозиториях 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)

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