gpt4 book ai didi

docker - 如何在traefik v2中全局设置基本身份验证?

转载 作者:行者123 更新时间:2023-12-02 19:52:37 24 4
gpt4 key购买 nike

我正在使用traefik 2.1,并想为所有容器设置基本身份验证,在1.x中很容易做到:

    [entryPoints.http.auth.basic]
usersFile = "/etc/traefik/.htpasswd"

但是如何在2.x中设置呢?我想避免在我的所有docker-compose.yml文件中插入代码-很多。

最佳答案

主要思想是:

  • 我们可以使用内置的中间件https://docs.traefik.io/middlewares/basicauth/
  • 我们需要将中间件从上方连接到需要保护的容器

  • 请找到 docker-compose.yml的示例
    version: '3.7'

    services:
    traefik:
    image: "traefik:v2.2.1"
    command:
    - "--api.insecure=true"
    - "--providers.docker=true"
    - "--providers.docker.exposedbydefault=false"
    - "--providers.docker.network=default"
    - "--entrypoints.web.address=:80"
    - "--api"
    volumes:
    - "/var/run/docker.sock:/var/run/docker.sock:ro"
    ports:
    - 80:80
    # management console
    - 8080:8080
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
    - "traefik.http.routers.http-catchall.entrypoints=web"
    # auth middleware with user / password
    - "traefik.http.middlewares.my-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"

    whoami:
    image: "containous/whoami"
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
    - "traefik.http.routers.whoami.entrypoints=web"
    # connect your auth middleware to a service which you want to protect
    - "traefik.http.routers.whoami.middlewares=my-auth"

    因此,现在我们可以检查一下:
  • 身份验证已提示http://whoami.localhost
  • 有效的用户名是“test:test”或“test2:test2”

  • 您应该使用 htpasswd命令生成用户列表,并根据Traefik文档进行连接。

    而已。快乐的编码;)

    关于docker - 如何在traefik v2中全局设置基本身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59643680/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com