Несколько хостов одного сайта в Docker
Несколько хостов одного сайта перечисляют в одном правиле, и оба адреса ведут в тот же контейнер.
Запись
Host(`a.localhost`) || Host(`b.localhost`)
у роутера site
принимает оба имени.
Второй сервис для зеркала не заводят.
Один сервис site
на nginx
без ports
и прокси с точкой web
на 80:
services:
proxy:
image: traefik:3
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
site:
image: nginx
labels:
- traefik.enable=true
- traefik.http.routers.site.rule=Host(`a.localhost`) || Host(`b.localhost`)
Запуск в фоне:
docker compose up -d
Адреса
http://a.localhost
и http://b.localhost
открывают одну и ту же страницу nginx.
Оба имени ссылаются на одну копию site.
Опишите сервис main на nginx с хостами one.localhost и two.localhost в одном правиле роутера main.
Откройте оба адреса и убедитесь, что содержимое страниц совпадает.