Сеть прокси в Docker
Сеть прокси собирает прокси и сайты, которые должны быть видны друг другу по имени. Имя сервиса в описании работает как адрес внутри этой сети, без выхода на компьютер.
Сеть web
объявляют в корне файла.
Сервисы proxy
и site
подключают к ней.
У site
на nginx
нет ports,
маршрут задаёт
Host(`site.localhost`):
networks:
web:
services:
proxy:
image: traefik:3
command:
- --entrypoints.web.address=:80
- --providers.docker=true
- --providers.docker.exposedbydefault=false
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- web
site:
image: nginx
networks:
- web
labels:
- traefik.enable=true
- traefik.http.routers.site.rule=Host(`site.localhost`)
Подъём проекта:
docker compose up -d
Прокси и site
делят сеть web.
Флаг внутренней сети
здесь не ставят:
снаружи по-прежнему
доступен только
порт прокси на 80.
Страница nginx открывается
по http://site.localhost.
Опишите сеть front, прокси traefik:3 и сервис home на nginx с хостом home.localhost, оба в этой сети.
Проверьте http://home.localhost и запишите заголовок ответа сервера со страницы.