31.07.2026
proxy pass nginx примеры
Proxy Pass Nginx Примеры: Полное руководство для начинающих и профессионалов
Если вы занимаетесь настройкой веб-сервера или хотите реализовать балансировку нагрузки, reverse proxy или скрыть внутренние ресурсы — nginx с его модулем proxy_pass станет вашим незаменимым помощником. В этой статье я расскажу, что такое proxy_pass, как его правильно настроить, и приведу реальные примеры, которые помогут вам быстро реализовать нужные задачи.
Что такое proxy pass в nginx?
proxy_pass — это директива в конфигурации nginx, которая позволяет перенаправлять запросы с одного сервера на другой. Это особенно полезно для реализации reverse proxy, балансировки нагрузки, кеширования или скрытия внутренних сервисов.
Пример базовой настройки выглядит так:
location /api/ {
proxy_pass http://backend_server/;
}
Это означает, что все запросы по пути /api/ будут перенаправлены на сервер backend_server.
Основные ситуации, когда нужен proxy_pass
- Балансировка нагрузки между несколькими серверами
- Обеспечение безопасности — скрытие внутренней инфраструктуры
- Кеширование статического контента
- Объединение нескольких сервисов под одним доменом
Лучшие практики и типичные ошибки
- Не забывайте о правильной настройке заголовков (
Host,X-Real-IP,X-Forwarded-For) - Указывайте полные URL, включая схему (
http://илиhttps://) - Следите за путями — избегайте дублирования слэшей
- Используйте
proxy_set_headerдля передачи информации о клиенте
Примеры использования proxy_pass nginx
Давайте рассмотрим, как на практике применяются разные сценарии.
- Простой proxy_pass на внутренний сервер
server {
listen 80;
server_name example.ru;
location /app/ {
proxy_pass http://127.0.0.1:8080/;
}
}
Все запросы к http://example.ru/app/ будут перенаправлены на внутренний сервер по адресу 127.0.0.1:8080.
- Proxy pass с изменением пути
Иногда нужно оставить запросы к внешнему серверу, но при этом менять путь, чтобы внутренний сервер получал нужный endpoint.
location /blog/ {
proxy_pass http://localhost:5000/wordpress/;
}
Запрос /blog/article отправится на http://localhost:5000/wordpress/article.
Обратите внимание, что в конце proxy_pass — слэш. Это важно для правильной работы.
- Балансировка нагрузки
Если у вас есть несколько серверов, и вы хотите распределить нагрузку:
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
}
server {
listen 80;
server_name example.ru;
location /api/ {
proxy_pass http://backend/;
}
}
Теперь запросы к /api/ будут равномерно распределяться между двумя серверами.
- Использование proxy_pass с HTTPS
Если внутренний сервис использует HTTPS, убедитесь, что nginx доверяет сертификату:
location /secure/ {
proxy_pass https://secure-backend.local/;
proxy_ssl_verify off; # отключить проверку сертификата, если нужно
}
Обратите внимание, что для этого потребуется правильная настройка SSL.
Итог
proxy_pass — мощный инструмент, который позволяет гибко управлять обменом данными между клиентами и серверами. Правильная настройка обеспечит безопасность, производительность и удобство эксплуатации вашего веб-приложения.
Если вы только начинаете, экспериментируйте на тестовых серверах, не забывайте о безопасности и всегда тестируйте конфигурацию перед запуском в продакшн.
Хотите больше примеров и секретов? Подписывайтесь на наш блог и оставайтесь в курсе всех новинок в мире nginx и информационной безопасности!