ru
Nginx reverse proxy на VPS: настройка и оптимизация
Nginx — универсальный reverse proxy для любого backend-стека: Node.js, Python, PHP, Go, Java. Правильная настройка Nginx на VPS обеспечивает SSL-терминацию, кеширование, балансировку нагрузки и защиту от базовых атак.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Базовая конфигурация Nginx reverse proxy
Nginx как reverse proxy принимает запросы на портах 80/443 и перенаправляет их на backend (Node.js на 3000, Gunicorn на 8000, PHP-FPM через socket). Это позволяет запускать несколько приложений на одном VPS, разделяя их по доменным именам (virtual hosts).
Минимальная конфигурация reverse proxy: server block с listen 80, server_name yourdomain.com и location / с директивой proxy_pass http://localhost:3000. Добавьте proxy_set_header Host $host и proxy_set_header X-Real-IP $remote_addr, чтобы backend видел реальный IP клиента, а не 127.0.0.1.
Для Unix socket (PHP-FPM, Gunicorn) используйте proxy_pass http://unix:/run/gunicorn.sock — это быстрее TCP-соединения на 10-30% благодаря меньшим накладным расходам ядра. На VPS от Anubiz Host Unix sockets работают без ограничений.
SSL-терминация и HTTPS на Nginx
SSL-терминация на Nginx означает: клиент подключается по HTTPS к Nginx, Nginx расшифровывает трафик и передаёт backend по HTTP (внутри VPS). Backend не занимается шифрованием — это снижает его нагрузку.
Certbot автоматически настраивает SSL на Nginx: certbot --nginx -d yourdomain.com создаёт сертификат Let's Encrypt, добавляет SSL-конфигурацию в nginx.conf и настраивает автообновление через systemd timer. Сертификаты обновляются каждые 90 дней без вашего участия.
Современная SSL-конфигурация: ssl_protocols TLSv1.2 TLSv1.3 (отключите TLS 1.0/1.1), ssl_ciphers с ECDHE-приоритетом, ssl_session_cache shared:SSL:10m для переиспользования сессий. Заголовок HSTS (Strict-Transport-Security) принудительно включает HTTPS на уровне браузера.
HTTP/2 активируется добавлением http2 к директиве listen 443: это ускоряет загрузку страниц через мультиплексирование запросов и серверное push-уведомление ресурсов.
Nginx как load balancer между несколькими backend
Nginx upstream block определяет пул backend-серверов для балансировки нагрузки. На одном VPS это несколько процессов одного приложения (PM2 cluster mode): upstream nodejs { server 127.0.0.1:3001; server 127.0.0.1:3002; server 127.0.0.1:3003; }.
Алгоритмы балансировки: round-robin (по умолчанию) — запросы распределяются поочерёдно; least_conn — запрос идёт на сервер с наименьшим числом активных соединений (лучше для длинных запросов); ip_hash — клиент всегда попадает на один backend (sticky sessions).
Health checks (доступны в Nginx Plus или через сторонние модули в open-source версии): Nginx помечает backend как недоступный при повторяющихся ошибках (max_fails = 3, fail_timeout = 30s) и временно исключает из ротации. Это обеспечивает отказоустойчивость без ручного вмешательства.
Nginx кеширование и оптимизация производительности
Nginx proxy cache сохраняет ответы backend на диске и отдаёт повторные запросы без обращения к приложению. Конфигурация: proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g. Для WordPress-сайтов или API с редко меняющимися данными это снижает нагрузку на backend в 10-50 раз.
gzip-компрессия: gzip on + gzip_types для HTML, CSS, JS, JSON, SVG. Сжатие уменьшает размер передаваемых данных на 60-80%. Директива gzip_comp_level 6 — компромисс между степенью сжатия и нагрузкой на CPU.
Статика с долгим кешированием: location ~* \.(?:css|js|woff2|png|jpg)$ { expires 1y; add_header Cache-Control "public, immutable"; }. Браузер кеширует ресурсы на год — повторные посещения загружаются мгновенно из кеша.
Rate limiting защищает от DDoS и брутфорса: limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s ограничивает каждый IP до 10 запросов в секунду к API-endpoint. Превышение лимита возвращает 429 Too Many Requests.
Related Services
Why Anubiz Host
100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.