Frod

25.08.2026

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

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

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

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

Начнем с понимания основной концепции

Reverse proxy — это сервер, который расположен между клиентом и группой сервисов. Он принимает запросы от клиента,.route-ит их к необходимому сервису и возвращает ответ обратно клиенту. Это позволяет скрыть внутреннюю сеть сервисов от внешнего мира и обеспечить дополнительную защиту.

Конфигурация nginx reverse proxy для нескольких сервисов Docker

Чтобы настроить nginx reverse proxy для работы с несколькими сервисами Docker, вам потребуется следующая конфигурация:

http {
 ...
 server {
 listen 80;
 server_name example.com;

 location / {
 proxy_pass http://service1:8080;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 }

 location /service2 {
 proxy_pass http://service2:8081;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 }

 location /service3 {
 proxy_pass http://service3:8082;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 }
 }
}

В этом конфиге мы настраиваем nginx на прослушивание порта 80 и добавляем три отдельных секции для каждого сервиса:

  • service1 доступен по адресу /, что означает, что все запросы к корню сайта будут роутит в этот сервис.
  • service2 доступен по адресу /service2, что означает, что все запросы к этому адресу будут роутит в этот сервис.
  • service3 доступен по адресу /service3, что означает, что все запросы к этому адресу будут роутит в этот сервис.

Соединение с сервисами Docker

Чтобы соединить nginx reverse proxy с сервисами Docker, вам потребуется настроить Docker Compose файл следующим образом:

version: '3'
services:
 nginx:
 image: nginx:latest
 ports:
 - "80:80"
 volume:
 - ./nginx.conf:/etc/nginx/nginx.conf:ro
 depends_on:
 - service1
 - service2
 - service3

 service1:
 image: service1/image
 ports:
 - "8080:8080"

 service2:
 image: service2/image
 ports:
 - "8081:8081"

 service3:
 image: service3/image
 ports:
 - "8082:8082"

В этом примере мы настраиваем Docker Compose, чтобы запустить nginx reverse proxy и три сервиса. Мы также связываем nginx с сервисами, чтобы он мог роутить запросы к ним.

Вывод

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

Советы и рекомендации

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

Дополнительные ресурсы