使用 Traefik 将基本身份验证应用于除一个容器之外的所有容器

Use Traefik to apply basic auth to all containers except one

除 select 少数容器外,要求对所有容器进行基本身份验证的最佳方法是什么?

this question类似,仍在等待答案。

你不能这样做,你需要在每个前端添加基本身份验证。

https://docs.traefik.io/configuration/backends/docker/#on-containers

您可以仅向某些使用 traefik 标签的容器添加身份验证。例如:

两个容器堆叠在一起,一个有这个标签: "traefik.frontend.auth.basic=user:$$apr1$Cv/OMGj$$ZomWQzuQbL.3TRCS81A1g/"

另一个没有。访问第一个容器需要对用户 user 进行身份验证。另一个会打开。

参考:https://docs.traefik.io/configuration/backends/docker/#on-containers

通过标签向您的 traefik 容器添加一个基本的身份验证标签

labels:
  # Basic Auth middleware
  - traefik.http.middlewares.YOUR_AUTH_MIDDLEWARE_NAME.basicauth.users=${TRAEFIK_BASICAUTH_USERS}

然后,在您的其他容器中,您可以通过标签添加相同的中间件:

labels:
  - traefik.enable=true
  - traefik.port=80
  - traefik.http.routers.YOUR_ROUTER_NAME.rule=Host(`subdomain.domain.com`)
  - traefik.http.routers.YOUR_ROUTER_NAME.entryPoints=websecure
  - traefik.http.routers.YOUR_ROUTER_NAME.middlewares=YOUR_AUTH_MIDDLEWARE_NAME # <- this enables basic auth, using the same users

对于不应具有基本身份验证的容器,只需删除最后一个标签