22.07.2026
nginx reverse proxy docker compose
Настройка nginx reverse proxy в Docker Compose: пошаговое руководство
Если вы работаете с несколькими веб-приложениями, то организация правильной маршрутизации трафика — залог их стабильной работы и безопасности. Один из популярных способов — использовать nginx как обратный прокси, запущенный в Docker Compose. В этой статье я расскажу, как правильно настроить nginx reverse proxy docker compose и обеспечивать надежную работу ваших сервисов.
Почему стоит выбрать nginx как reverse proxy в Docker?
Nginx — это мощный и легкий веб-сервер, который отлично справляется с задачами балансировки нагрузки, SSL-терминации и маршрутизации запросов. Использование nginx в контейнере Docker дает гибкость, изоляцию и простоту масштабирования. А Docker Compose позволяет управлять всей инфраструктурой одним файлом, что делает настройку максимально удобной.
Основные преимущества nginx reverse proxy в Docker Compose
- Простая конфигурация и автоматизация
- Централизованный контроль доступа и SSL
- Масштабируемость и возможность добавлять новые сервисы без сложных настроек
- Улучшенная безопасность за счет изоляции контейнеров
Шаг 1: Создайте docker-compose.yml
Первым делом создайте файл docker-compose.yml, где опишете все необходимые сервисы: nginx и ваши приложения. Вот пример базовой конфигурации:
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx_reverse_proxy
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./certs:/etc/ssl/certs:ro
- ./certs:/etc/ssl/private:ro
networks:
- webnet
app1:
image: your-app-image
container_name: app1
environment:
- VIRTUAL_HOST=app1.example.com
networks:
- webnet
app2:
image: your-app-image
container_name: app2
environment:
- VIRTUAL_HOST=app2.example.com
networks:
- webnet
networks:
webnet:
Этот файл запускает nginx и два ваших приложения, каждому из которых назначается виртуальный хост.
Шаг 2: Настройка nginx.conf
В файле nginx.conf опишите правила маршрутизации. Вот пример:
server {
listen 80;
server_name app1.example.com;
location / {
proxy_pass http://app1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name app2.example.com;
location / {
proxy_pass http://app2:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Если хотите использовать HTTPS, добавьте блоки с listen 443 ssl;, укажите сертификаты и ключи.
Шаг 3: Обеспечение безопасности и SSL
Для защиты данных используйте сертификаты от Let's Encrypt или свои. В каталоге certs разместите сертификаты и ключи, после чего обновите конфигурацию nginx для поддержки HTTPS.
Шаг 4: Запуск и проверка
Запустите все сервисы командой:
docker-compose up -d
Проверьте работу через браузер, убедившись, что ваши домены корректно перенаправляются и работают по HTTPS.
Итог
Настройка nginx reverse proxy docker compose — простой и эффективный способ управлять несколькими приложениями. Такой подход повышает безопасность, упрощает масштабирование и позволяет быстро реагировать на новые требования. Используйте его для построения надежной инфраструктуры и защиты своих веб-сервисов.