Предположим, у меня есть два веб-сервиса, которые говорят, что они w1
и w2
, которые развернуты docker-compose.
Теперь я хочу создать несколько контейнеров для каждого из них и создать балансировщик нагрузкиперед ними, которые могут сделать доступ к сервисам следующим образом:
http://localhost:8880 //for service w1
http://localhost:8888 //for service w2
Я искал и получил dockercloud-haproxy и nginx-proxy .
Тем не менее, первое устарело, а последующие должны использоваться с именем хоста, чтобы различать разные службы.
Это довольно сложно для установки разных хостов, особенно в среде разработки.
Тогда я нашел трафик.Похоже, более настраиваемый.Это конфигурационный файл, который я использовал:
version: "3"
services:
w1:
image: jwilder/whoami
labels:
- "traefik.backend=whoami"
- "traefik.protocol=http"
- "traefik.port=8080"
- "traefik.frontend.entryPoints=http_8080"
w2:
build: . # a simple node server which use port 80
labels:
- "traefik.backend=node"
- "traefik.protocol=http"
- "traefik.port=80"
- "traefik.frontend.entryPoints=http_80"
lb:
image: traefik
command: "--docker \
--logLevel=DEBUG \
--entryPoints='Name:http_80 Address::80' \
--entryPoints='Name:http_8080 Address::8080'"
ports:
- 8880:80
- 8888:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Хотя он все еще не может удовлетворить мои требования.
Возможно ли это или любое другое альтернативное решение?