Frod

22.07.2026

nginx reverse proxy docker compose

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

Настройка 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 — простой и эффективный способ управлять несколькими приложениями. Такой подход повышает безопасность, упрощает масштабирование и позволяет быстро реагировать на новые требования. Используйте его для построения надежной инфраструктуры и защиты своих веб-сервисов.