docker - 如何使用 SSL 和基本身份验证保护 traefik 仪表板?

标签 docker docker-swarm traefik

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/

相关文章:

docker - 当我在 Portainer 中单击 "Update the stack"按钮时执行哪个命令?

kubernetes - 不同 kubernetes 命名空间中的多个 Traefik 实例

docker - Traefik v2和带路径的路由

docker - Kubernetes允许容器退出而无需重启pod

php - 带有 Laravel 应用程序的自包含 Docker 镜像(无共享卷)

docker - 在 Airflow 上使用 docker 操作符安装目录不起作用

ssl - 创建 TLS 配置时出错 (v1.3.7)

python - Pipenv 在 Gitlab 中使用 Docker 运行时被阻止

docker - 如何将本地文件共享到 docker 容器在 swarm 中使用 docker-compose

docker - 重新启动 docker swarm 堆栈中的一项服务