25.08.2026
nginx reverse proxy конфиг для нескольких сервисов docker пример
Начнем прямо с того, о чем вы спрашиваете: конфигурация 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.
Дополнительные ресурсы
- Документация nginx: https://nginx.org/en/docs/
- Docker Compose: https://docs.docker.com/compose/
- Примеры конфигурации nginx reverse proxy: https://nginx.org/en/docs/http/reverse_proxy.html