Для настройки перенаправления HTTP-запросов из одного контейнера в другой через Nginx в Docker Compose, вам понадобится создать три контейнера: один контейнер с Nginx и два контейнера с вашими сервисами.
Вот шаги, которые вы должны выполнить:
Шаг 1: Создайте Dockerfile для вашего сервиса и соберите образ для каждого сервиса. Для примера, допустим, у вас есть два сервиса - service1 и service2.
# Dockerfile для service1 FROM nginx:latest COPY nginx.conf /etc/nginx/conf.d/default.conf
# Dockerfile для service2 FROM nginx:latest COPY nginx.conf /etc/nginx/conf.d/default.conf
Шаг 2: Создайте файл docker-compose.yml для определения сервисов и их связей. Здесь мы определим три сервиса - nginx, service1 и service2.
version: '3' services: nginx: build: context: . ports: - 80:80 service1: build: dockerfile: Dockerfile context: ./service1 ports: - 8080:80 service2: build: dockerfile: Dockerfile context: ./service2 ports: - 8081:80
Шаг 3: Создайте файл nginx.conf, где вы настроите перенаправление HTTP-запросов внутри контейнера Nginx на другие сервисы.
# nginx.conf server { listen 80; location / { proxy_pass http://service1:80; } location /service2/ { proxy_pass http://service2:80/; } }
Шаг 4: Запустите контейнеры с помощью docker-compose.
$ docker-compose up -d
После этого контейнеры с nginx, service1 и service2 будут созданы и запущены. Входящие HTTP-запросы на порт 80 будут перенаправлены на контейнеры service1 и service2 в соответствии с настройками nginx.conf.
Вы можете проверить, что настройка работает, выполнив HTTP-запросы к серверу, установив curl
или веб-браузер. Например, для сервиса service1:
$ curl http://localhost
Должен быть получен ответ от сервиса service1.
Вот так вы можете настроить перенаправление HTTP-запроса из одного контейнера в другой через Nginx с использованием Docker Compose.