23 мая 2026Руководства
Как настроить обратный прокси в Nginx
Проксирование Node.js, Docker и других приложений через Nginx с поддержкой WebSocket и SSL.

Обратный прокси позволяет Nginx принимать HTTP/HTTPS с интернета и передавать запросы приложению на localhost (например Node.js на порту 3000 или контейнер Docker). Так обычно выводят сервисы в продакшен на VPS Hiddence.
Что нужно
- Установленный и запущенный Nginx
- Приложение слушает localhost (например 127.0.0.1:3000)
- Домен указывает на VPS (для SSL)
- Порты 80 и 443 открыты в брандмауэре
Базовая конфигурация
Создайте конфиг сайта для домена:
bash
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
sudo nginx -t && sudo systemctl reload nginxПоддержка WebSocket
Нужно для Socket.io, панелей мониторинга и обмена данными в реальном времени:
bash
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}HTTPS через Certbot
После проверки HTTP выпустите сертификат:
bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.comСоветы
- Для потоковой передачи отключите буферизацию (proxy_buffering off)
- Увеличьте лимит тела запроса (client_max_body_size), если загружают большие файлы
- Несколько приложений можно повесить на разные поддомены
- Несколько серверов — через блок upstream и балансировку
- Ошибка 502 — смотрите /var/log/nginx/error.log