Nginx как reverse proxy
Проксирование приложения через Nginx: заголовки, таймауты, WebSocket и проверка конфигурации.
· 8 мин чтения
Зачем нужен reverse proxy
Reverse proxy принимает запросы от клиентов и передаёт их приложению внутри сети. Он берёт на себя TLS, сжатие, кэширование и ограничения, а приложение остаётся простым и недоступным напрямую.
Базовая конфигурация
server {
listen 80;
server_name app.example.com;location / { proxy_pass http://127.0.0.1:8080; 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; } }
Без заголовка Host приложение получит адрес бэкенда вместо исходного имени, а X-Forwarded-* нужны, чтобы видеть реальный IP клиента и протокол.
Таймауты и буферы
Значения по умолчанию подходят большинству приложений. Меняйте их, только если видите конкретную проблему: 502, 504 или обрезанные ответы.
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;WebSocket
Для WebSocket нужны HTTP/1.1 и заголовки обновления соединения.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";Проверка и применение
sudo nginx -t
sudo systemctl reload nginx
tail -f /var/log/nginx/error.lognginx -t перед reload и храните копию рабочей конфигурации. Ошибка в файле при restart приведёт к простою.Типичные ошибки
502 Bad Gateway — бэкенд не отвечает или слушает другой адрес. 504 — бэкенд не успел ответить за таймаут. 413 — тело запроса больше client_max_body_size. В каждом случае ответ ищите в error.log.
Вывод
Reverse proxy — тонкий слой с понятными задачами. Начните с минимальной конфигурации, добавляйте директивы по необходимости и проверяйте каждое изменение.
Связанные статьи
Основы мониторинга VPS
Какие метрики следить в первую очередь и как быстро найти узкое место.
Безопасная настройка SSH
Ключи, отключение паролей, ограничение доступа и безопасное применение изменений.