配置 traefik 的 ForwardAuth 中间件时出现问题
problem configuring traefik's ForwardAuth middleware
我的容器很少,是用 docker-compose 提出来的,我想对这些容器执行身份验证。
下面的部分我认为应该这样做,但它不会进入 authentication-backend-nginx-private,直接登陆 mds-backend-nginx-private。我不知道,配置可能有什么问题...
如果全局配置了 authforward,它会起作用:在入口点部分下的 toml 文件中,但我希望它是每个特定容器..
mds-backend-nginx-private:
<<: *nginx-common
ports:
- 8186:80
networks:
- cloud_private
- mds-backend
restart: on-failure
environment:
- NGINX_SERVER_NAME=mds-backend-nginx-private
- WEBSITE_PROXY_NAME=mds-backend-web-private
- WEBSITE_PROXY_PORT=8000
labels:
- "traefik.http.middlewares.authf.ForwardAuth.Address=http://authentication-backend-nginx-private/api/v1/gateway/account?with_credentials=true"
- "traefik.docker.network=cloud_private"
- "traefik.http.routers.mds-backend.middlewares=authf"
- "traefik.frontend.rule=PathPrefix: /api/v1/mds/"```
也许,您正在尝试将 "middleware feature" 与旧的 traefik 版本一起使用。
在 toml 文件中有效,因为您使用的是旧版本中的 "forward feature"。
检查 traefik 标签图像是否等于或大于 2.0
我的容器很少,是用 docker-compose 提出来的,我想对这些容器执行身份验证。 下面的部分我认为应该这样做,但它不会进入 authentication-backend-nginx-private,直接登陆 mds-backend-nginx-private。我不知道,配置可能有什么问题...
如果全局配置了 authforward,它会起作用:在入口点部分下的 toml 文件中,但我希望它是每个特定容器..
mds-backend-nginx-private:
<<: *nginx-common
ports:
- 8186:80
networks:
- cloud_private
- mds-backend
restart: on-failure
environment:
- NGINX_SERVER_NAME=mds-backend-nginx-private
- WEBSITE_PROXY_NAME=mds-backend-web-private
- WEBSITE_PROXY_PORT=8000
labels:
- "traefik.http.middlewares.authf.ForwardAuth.Address=http://authentication-backend-nginx-private/api/v1/gateway/account?with_credentials=true"
- "traefik.docker.network=cloud_private"
- "traefik.http.routers.mds-backend.middlewares=authf"
- "traefik.frontend.rule=PathPrefix: /api/v1/mds/"```
也许,您正在尝试将 "middleware feature" 与旧的 traefik 版本一起使用。
在 toml 文件中有效,因为您使用的是旧版本中的 "forward feature"。
检查 traefik 标签图像是否等于或大于 2.0