Frod

20.08.2026

nginx reverse proxy конфиг для нескольких сервисов docker пример

Frod — свобода без границ

Накопленная экспертиза: конфигурация nginx reverse proxy для нескольких сервисов Docker: пример и рекомендации

Если вы занимаетесь разработкой и реализацией сложных IT-решений, то наверняка столкнулись с проблемой управления доступом к различным сервисам, которые находятся в Docker-контейнерах. Чтобы решить эту задачу, вы можете использовать nginx как reverse proxy, обрабатывающий запросы и обеспечивший безопасный доступ к внутренним сервисам.

В этой статье мы рассмотрим пример конфигурации nginx reverse proxy, которая подойдет для использования в среде Docker. Мы также обсудим основные плюсы и минусы использования reverse proxy и предоставим рекомендации по выбору подходящего конфигурационного файла.

Начало работы с nginx reverse proxy

Начнем с понимания того, что представляет собой reverse proxy. Это сервер, который принимает входящие запросы от клиентов и передает их внутренним сервисам, которые обрабатывают запросы и возвращают ответы обратно через reverse proxy.

nginx — это высокопроизводительный и гибкий сервер, который отлично подходит для использования в роли reverse proxy. Он поддерживает множество протоколов, включая HTTP, HTTPS и WebSocket, и может обрабатывать большие объемы трафика.

Пример конфигурации nginx reverse proxy

Независимо от того, что вы собираетесь делать, начнем с базовой конфигурации nginx reverse proxy, которая подойдет для использования в среде Docker.

http {
 upstream backend1 {
 server backend1:8080;
 }

 upstream backend2 {
 server backend2:8081;
 }

 server {
 listen 80;
 server_name example.com;

 location / {
 proxy_pass http://backend1;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }

 location /api {
 proxy_pass http://backend2;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
 }
}

В этом примере мы создали два upstream-конфига, которые указывают на два внутренних сервиса: backend1 и backend2. Затем мы создали сервер с портом 80 и указали, что все запросы, обрабатываемые этим сервером, должны быть переданы на backend1. Мы также указали, что все запросы, обрабатываемые URL-адресом /api, должны быть переданы на backend2.

Рекомендации по конфигурации

Чтобы получить максимум из nginx reverse proxy, следует помнить о следующих рекомендациях:

  • Используйте SSL/TLS-сертификаты для обеспечения безопасности соединений между клиентами и reverse proxy.
  • Установите ограничения доступа к внутренним сервисам, чтобы предотвратить несанкционированный доступ.
  • Мониторьте производительность reverse proxy и внутренних сервисов, чтобы обеспечить оптимальную работу.
  • Используйте caching и отложенную загрузку, чтобы оптимизировать работу reverse proxy.

В заключение, конфигурация nginx reverse proxy для нескольких сервисов Docker представляет собой сложную задачу, но с помощью правильных рекомендаций и примеров конфигурации вы сможете обеспечить безопасный и эффективный доступ к внутренним сервисам.