A 在 DigitalOcean 上设置了 traefik 并为 3 节点 docker 群工作,并且我的 Web 应用程序运行得很好。我想保护 traefik 仪表板的安全,并从 GitHub 问题中收集了一些信息,但我的尝试导致在尝试访问仪表板时网关超时。
我的撰写文件如下(为了安全起见,对身份验证和网址进行了编辑):
version: "3.5"
services:
traefik:
image: traefik:1.6
command:
- --api
- --docker
- --docker.watch
- --docker.swarmmode
- --entryPoints=Name:http Address::80
- --entryPoints=Name:https Address::443 TLS:/run/secrets/el_cert,/run/secrets/el_key,/run/secrets/as_cert,/run/secrets/as_key
ports:
- 80:80
- 443:443
networks:
- proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
secrets:
- as_cert
- as_key
- el_cert
- el_key
deploy:
mode: global
labels:
- "traefik.frontend.entryPoints=http,https"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.rule=Host:<hostname>"
- "traefik.port=8080"
- "traefik.frontend.auth.basic=<user>:<password>"
placement:
constraints: [node.role==manager]
networks:
proxy:
external:
name: proxy
secrets:
as_cert:
external: true
as_key:
external: true
el_cert:
external: true
el_key:
external: true
顺便说一句,如果我将标签从部署下移出,它可以使用 docker-compose 在本地工作。
最佳答案
添加以下标签似乎可以解决问题:
traefik.backend.loadbalancer.swarm=true
我认为 traefik 负载均衡器正在进入某种无限循环。如果有人能提供完整的解释,我将不胜感激!
关于docker - 如何使用 SSL 和基本身份验证保护 traefik 仪表板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51008025/