Настройка

Настройка reverse proxy и TLS.

Способ развёртыванияКоманды на этой странице относятся к поставке Docker Compose. Откройте соответствующую процедуру для Kubernetes и Helm.

Reverse proxy и TLS

Создайте публичный DNS-домен, направленный на внешний IP сервера, и настройте HTTPS на порту 443 с действующим TLS-сертификатом. Reverse proxy — единая точка входа для пользователей платформы: он принимает трафик на стандартном порту 443 и направляет его на внутренние сервисы, скрывая их порты от прямого доступа из интернета и централизованно завершая TLS. HTTPS обязателен: трафик между браузером и платформой шифруется, а без действующего сертификата браузеры блокируют доступ или помечают соединение как небезопасное. Через reverse proxy проходят запросы к API платформы (веб-панель и публичный API): направляйте их на порт 10001 (gateway), а страницы веб-панели — на порт 10011.

Конфигурация Nginx

Создайте файл конфигурации /etc/nginx/sites-available/massaccess.conf. Замените ms.company.ru на ваш домен и укажите актуальные пути к TLS-сертификатам. Инструкция предполагает nginx, установленный из репозитория ОС (Debian/Ubuntu).

nginx
# /etc/nginx/sites-available/massaccess.conf

server {
    listen 443 ssl http2;
    server_name ms.company.ru;

    ssl_certificate /etc/letsencrypt/live/ms.company.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ms.company.ru/privkey.pem;

    client_max_body_size 10M;

    # Web panel API
    location /web/api/ {
        proxy_pass http://127.0.0.1:10001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Web panel WebSocket
    location /web/api/ws/ {
        proxy_pass http://127.0.0.1:10001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Public API
    location /api/ {
        proxy_pass http://127.0.0.1:10001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Web panel
    location / {
        proxy_pass http://127.0.0.1:10011;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# HTTP -> HTTPS redirect
server {
    listen 80;
    server_name ms.company.ru;
    return 301 https://$host$request_uri;
}
ИнформацияЕсли nginx установлен на отдельном хосте, замените 127.0.0.1 на IP-адрес сервера платформы и откройте порты 10001 и 10011 в файрволе. WebSocket-соединения веб-панели используют путь /web/api/ws/.

Подключите конфигурацию симлинком, проверьте и перезагрузите nginx:

bash
ln -s /etc/nginx/sites-available/massaccess.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

Если nginx работает в Docker, положите файл massaccess.conf в каталог, смонтированный в контейнер как /etc/nginx/conf.d/ — nginx автоматически подключает все файлы *.conf из этого каталога. Например, в docker compose добавьте в сервис nginx том ./nginx/conf.d:/etc/nginx/conf.d. Затем примените изменения:

bash
docker exec nginx nginx -t && docker exec nginx nginx -s reload