Руководство по установке сервера S-INFO
×

33.4. Создание конфигурации сайта

Создайте файл конфигурации:

sudo nano /etc/nginx/sites-available/sinfo.conf
 

Добавьте конфигурацию:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ""      "";
}
 
upstream sinfo_backend {
    server 127.0.0.1:5000;
    keepalive 64;
}
 
server {
    listen 80;
    server_name <DOMAIN>;
 
    server_tokens off;
 
    client_max_body_size 100M;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name <DOMAIN>;
 
    server_tokens off;
 
    ssl_certificate     /etc/ssl/sinfo/sinfo.crt;
    ssl_certificate_key /etc/ssl/sinfo/sinfo.key;
 
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
 
    client_max_body_size 100M;
 
    proxy_read_timeout 43200;
    proxy_connect_timeout 43200;
    proxy_send_timeout 43200;
 
    access_log /var/log/nginx/sinfo_access.log;
    error_log  /var/log/nginx/sinfo_error.log warn;
 
    # ===== Backend S-INFO =====
    # Весь backend публикуется под /api/.
    # /api/              -> http://127.0.0.1:5000/
    # /api/signalr_hub   -> http://127.0.0.1:5000/signalr_hub
    # /api/<method>      -> http://127.0.0.1:5000/<method>
    location /api/ {
        proxy_pass http://sinfo_backend/;
        proxy_http_version 1.1;
 
        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;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Prefix /api;
 
        # WebSocket / SignalR
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
 
        # Долгие REST-запросы, отчеты, импорт, экспорт
        proxy_read_timeout 43200;
        proxy_send_timeout 43200;
        proxy_connect_timeout 43200;
 
        # Большие загрузки файлов
        proxy_request_buffering off;
        proxy_buffering off;
 
        # API не кэшируется
        proxy_cache off;
        proxy_no_cache 1;
        proxy_cache_bypass 1;
        add_header Cache-Control "no-store" always;
    }
 
    # ===== S-INFO WEB, если веб-клиент установлен =====
    root /var/www/sinfo-web;
    index index.html;
 
    location = /index.html {
        add_header Cache-Control "no-cache, must-revalidate" always;
        etag on;
        try_files $uri =404;
    }
 
    location = /config.json {
        add_header Cache-Control "no-cache, must-revalidate" always;
        etag on;
        try_files $uri =404;
    }
 
    location ~* \.(js|mjs|css|png|jpg|jpeg|gif|svg|webp|ico|woff2?|ttf|eot)$ {
        expires 2h;
        add_header Cache-Control "public, max-age=7200" always;
        etag on;
        try_files $uri =404;
    }
 
    location / {
        try_files $uri $uri/ /index.html;
    }
}
 

Замените:

Значение
Что указать
<DOMAIN>
Доменное имя сервера
/etc/ssl/sinfo/sinfo.crt
Путь к SSL-сертификату
/etc/ssl/sinfo/sinfo.key
Путь к закрытому ключу
/var/www/sinfo-web
Путь к опубликованному S-INFO WEB, если используется веб-клиент
Таблица 12