SaveTest — ДокументацияSaveTest — Документация Сайт
Руководство пользователя
Руководство администратора
Установка и разработка
Руководство пользователя
Руководство администратора
Установка и разработка
  • Установка и разработка

    • Установка и разработка
    • Быстрый старт
    • Установка
    • Обновление
    • Домен и SSL — Nginx (опционально)
    • Разработка плагинов парсеров
Сайт

Домен и SSL — Nginx (опционально)

Если нужен собственный домен и HTTPS, настройте Nginx как обратный прокси перед SaveTest.

Nginx можно запускать любым способом: как системный пакет на хосте или как отдельный контейнер — это не принципиально. Главное, чтобы он проксировал трафик на ваш frontend SaveTest. По умолчанию используется порт 8080.

Установка Nginx

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install nginx

# CentOS/RHEL
sudo yum install nginx

Пример server

Файл /etc/nginx/sites-available/savetest или /etc/nginx/conf.d/savetest.conf:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream savetest {
    server localhost:8080;
    keepalive 32;
}

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name your-domain.com www.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    client_max_body_size 1g;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    client_body_timeout 600;

    location / {
        proxy_pass http://savetest;
        proxy_http_version 1.1;
        # Критически важно для WebSocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $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;
        # Увеличенные таймауты для WebSocket
        proxy_read_timeout 86400s;
        proxy_send_timeout 86400s;
        # Отключаем буферизацию для WebSocket
        proxy_buffering off;
    }
}

Критичные параметры в конфиге прокси:

  • proxy_set_header Upgrade и proxy_set_header Connection — обязательны для WebSocket.
  • proxy_read_timeout, proxy_send_timeout и proxy_buffering off — нужны для стабильной работы долгих WebSocket-соединений.
  • client_max_body_size, proxy_connect_timeout, proxy_send_timeout, client_body_timeout — важны для загрузки больших файлов (например, архивов Allure).

Выпуск сертификата Let's Encrypt

sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
sudo certbot renew --dry-run

Активация конфига

sudo ln -s /etc/nginx/sites-available/savetest /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

После перехода на внешний домен и HTTPS:

docker compose restart backend
Назад
Обновление
Далее
Разработка плагинов парсеров