- Что такое прокси-сервер Nginx и зачем его настраивать?
- Пошаговая настройка прокси-сервера в Nginx
- Расширенные конфигурации прокси-сервера
- Балансировка нагрузки
- Кеширование статики
- SSL/TLS терминация
- Часто задаваемые вопросы (FAQ)
- Как проверить конфигурацию Nginx на ошибки?
- Как перенаправить WebSocket через Nginx прокси?
- Как ограничить доступ к прокси по IP?
- Почему Nginx возвращает 502 Bad Gateway?
- Как настроить кеширование динамического контента?
Что такое прокси-сервер Nginx и зачем его настраивать?
Nginx — высокопроизводительный веб-сервер, который также эффективно работает как обратный прокси. При настройке в режиме прокси-сервера Nginx принимает запросы клиентов и перенаправляет их на бэкенд-серверы (например, приложения на Node.js, Python или Java). Это обеспечивает:
- Балансировку нагрузки между серверами
- Повышение безопасности (скрытие инфраструктуры)
- Кеширование статического контента
- Обработку SSL/TLS терминации
- Упрощение масштабирования приложений
Пошаговая настройка прокси-сервера в Nginx
Для базовой конфигурации выполните следующие шаги:
- Установите Nginx:
sudo apt update && sudo apt install nginx
- Создайте конфигурационный файл в
/etc/nginx/sites-available/proxy.conf
:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:3000; # Адрес бэкенд-сервера proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
- Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/proxy.conf /etc/nginx/sites-enabled/
- Проверьте синтаксис:
sudo nginx -t
- Перезагрузите Nginx:
sudo systemctl reload nginx
Расширенные конфигурации прокси-сервера
Балансировка нагрузки
upstream backend { server 10.0.0.1:8000; server 10.0.0.2:8000; server 10.0.0.3:8000; } server { location / { proxy_pass http://backend; } }
Кеширование статики
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m; server { location /static/ { proxy_cache my_cache; proxy_pass http://backend; proxy_cache_valid 200 1d; } }
SSL/TLS терминация
server { listen 443 ssl; ssl_certificate /etc/ssl/certs/nginx.crt; ssl_certificate_key /etc/ssl/private/nginx.key; location / { proxy_pass http://backend; } }
Часто задаваемые вопросы (FAQ)
Как проверить конфигурацию Nginx на ошибки?
Используйте команду: sudo nginx -t
. Она покажет синтаксические ошибки и путь к проблемным файлам.
Как перенаправить WebSocket через Nginx прокси?
Добавьте в location:
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
Как ограничить доступ к прокси по IP?
Используйте директиву allow/deny
:
location /admin { allow 192.168.1.0/24; deny all; proxy_pass http://backend; }
Почему Nginx возвращает 502 Bad Gateway?
Распространённые причины: бэкенд-сервер недоступен, неправильный proxy_pass
адрес, или порт приложения заблокирован фаерволом.
Как настроить кеширование динамического контента?
Используйте proxy_cache
с настройкой времени валидности:
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
Оптимальная настройка прокси-сервера Nginx значительно улучшает производительность и безопасность инфраструктуры. Регулярно обновляйте конфигурации в соответствии с нагрузкой и используйте мониторинг инструментами типа Nagios или Prometheus.