Nginx как обратный прокси: настройка и SSL

Nginx отлично справляется с ролью обратного прокси: он принимает клиентские запросы, распределяет их по backend-серверам и отдаёт статику. Добавим бесплатный SSL от Let’s Encrypt — и получим production-ready конфигурацию.

Базовая конфигурация прокси

server {
    listen 80;
    server_name example.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;
    }
}

Поместите файл в /etc/nginx/sites-available/ и создайте симлинк в sites-enabled. Проверьте: sudo nginx -t && sudo systemctl reload nginx.

Получение SSL-сертификата

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot автоматически изменит конфигурацию и настроит редирект с HTTP на HTTPS. Сертификат обновляется автоматически через systemd-таймер.

Усиление безопасности

  • Включите HSTS: add_header Strict-Transport-Security "max-age=31536000" always;
  • Ограничьте протоколы: ssl_protocols TLSv1.2 TLSv1.3;
  • Включите OCSP stapling.
  • Скройте версию Nginx: server_tokens off;

Балансировка нагрузки

upstream backend {
    least_conn;
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
}

Используйте least_conn для долгих соединений или round-robin по умолчанию. Добавьте health-checks через отдельный location.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.