server { listen 443 ssl; server_name app.mylocaldomain.online; ssl_certificate /etc/nginx/ssl/mylocaldomain.online.crt; ssl_certificate_key /etc/nginx/ssl/mylocaldomain.online.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # ВАЖНО: location /api должен быть ПЕРЕД location /, # так как nginx выбирает наиболее специфичное совпадение # Проксирование API запросов на бэкенд (включая /api/v1/files/* для изображений) location /api { # ВАЖНО: Укажите IP и порт вашего бэкенда # Если бэкенд на том же сервере на порту 443: proxy_pass http://127.0.0.1:443; # Или если бэкенд на другом сервере (например, 10.15.5.113:443): # proxy_pass http://10.15.5.113:443; 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_read_timeout 36000s; proxy_connect_timeout 60s; proxy_send_timeout 36000s; proxy_buffering off; # Отключаем буферизацию для потоковой передачи файлов proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; } # Проксирование всех остальных запросов на фронтенд (React/Vite) location / { proxy_pass http://10.15.5.252:3000; 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_read_timeout 36000s; proxy_buffers 16 4k; proxy_buffer_size 2k; # Важно для работы с WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }