Травень 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
# Certbot will update your server block for SSL automaticallyПоради
- Для потокової передачі вимкніть буферизацію (proxy_buffering off)
- Збільште ліміт тіла запиту (client_max_body_size), якщо завантажують великі файли
- Кілька застосунків можна повісити на різні піддомени
- Кілька серверів — через блок upstream і балансування
- Помилка 502 — дивіться /var/log/nginx/error.log