【发布时间】:2020-05-15 06:32:56
【问题描述】:
我正在尝试将 nginx-proxy 与 Docker Swarm 模式一起使用。我有一个用于 nginx-proxy 的堆栈和一个用于复制 3 次的 whoami 容器的堆栈。
问题是,当我查询集群时,我总是得到同一个 whoami 的响应。当我点击docker service scale whoami_whoami=1 时,nginx 会回复503 状态码,这意味着它会一直询问已删除的副本之一。
# proxy.yml
version: '3.8'
networks:
proxy:
driver: overlay
name: proxy
services:
nginx:
image: jwilder/nginx-proxy:latest
networks:
- proxy
environment:
- HTTPS_METHOD=noredirect
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
# - ${CLU_ROOT}/proxy/certs:/etc/nginx/certs:ro
ports:
- 80:80
# - 443:443
deploy:
placement:
constraints:
- node.role == manager
# whoami.yml
version: '3.8'
networks:
proxy:
external: true
services:
whoami:
image: jwilder/whoami:latest
networks:
- proxy
environment:
- VIRTUAL_HOST=whoami.dev.interne.eseo.fr
deploy:
replicas: 3
我在想 nginx 会向“whoami”发送请求,而 Swarm 的作用是在副本之间进行平衡。我错了吗?
另一方面,当我发布 whoami 服务的端口 8000 并点击:while sleep 1; do clear; curl whoami....:8000; done 时,每个回复都来自不同的副本。
提前致谢
【问题讨论】:
标签: docker docker-swarm-mode jwilder-nginx-proxy