我有一个处于群集模式和镜像的泊坞窗,该端口使用80端口作为websocket,使用8000端口作为http。
此配置使traefik达到它们之间的粘性负载平衡,但是我需要不同的映射-http @ 8000端口的443 TLS和ws @ 80端口的80 TLS。 严格。每种可能都有不同的LB模式。
任何人都可以解释实现此目标的方式吗? 谢谢!
最初的错误Webapp容器标签:
deploy:
labels:
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.loadbalancer.swarm=true"
- "traefik.backend=webapp"
- "traefik.docker.network=webapp-out"
- "traefik.entrypoints=http,https"
- "traefik.frontend.passHostHeader=true"
- "traefik.ws.frontend.rule=Host:host.domain.local"
- "traefik.ws.port=80"
- "traefik.web.frontend.rule=Host:host.domain.local"
- "traefik.web.port=8000"
- "traefik.enable=true"
答案 0 :(得分:0)
尝试在其中更改web
- "traefik.web.frontend.rule=Host:host.domain.local"
- "traefik.web.port=8000"
对于其他名称,已过时的Web提供商将使用该名称。
答案 1 :(得分:0)
负载均衡器后端混乱不堪,只能粘在一个节点上。 拥有不同后端以服务于来自不同entryPoints的请求的正确方法:
deploy:
labels:
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.loadbalancer.swarm=true"
- "traefik.backend=no_matter"
- "traefik.docker.network=webapp-out"
- "traefik.entrypoints=http,https"
- "traefik.frontend.passHostHeader=true"
- "traefik.port=80" #No matter this section. It will be discarded.
- "traefik.ws.frontend.rule=Host:host.domain.local"
- "traefik.ws.backend=ws_app"
- "traefik.ws.backend.loadbalancer.stickiness=true"
- "traefik.ws.backend.loadbalancer.swarm=true"
- "traefik.ws.frontend.entryPoints=http"
- "traefik.ws.port=80"
- "traefik.web.frontend.rule=Host:host.domain.local"
- "traefik.web.frontend.entryPoints=https"
- "traefik.web.backend=web_app"
- "traefik.web.backend.loadbalancer.stickiness=true"
- "traefik.web.backend.loadbalancer.swarm=true"
- "traefik.web.port=8000"
- "traefik.enable=true"