gpt4 book ai didi

docker - ForwardAuth 中间件在 Traefik 中无法作为 API 网关工作

转载 作者:行者123 更新时间:2023-12-02 18:19:56 26 4
gpt4 key购买 nike

我正在尝试将 Traefik 作为 API 网关运行,并希望使用以下 docker compose 文件触发 ForwardAuth 中间件,但中间件的身份验证端点未被命中。我将它与本地主机一起使用。

version: '3'

services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- $PWD/traefik.toml:/traefik.toml

whoami:
image: emilevauge/whoami
labels:
- traefik.enable=true
- "traefik.frontend.rule=Host:whoami.docker.localhost"
- "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https"
- "traefik.http.middlewares.test-replacepath.replacepath.path=/foo"
- "traefik.http.middlewares.testauth.ForwardAuth.Address=http://localhost:55391/api/Auth"

最佳答案

我也为此苦苦挣扎了一段时间,除了相当隐藏在 Traefik 文档中之外,在任何地方都找不到答案。 ForwardAuth docs实际上并没有提到这一点,而是看看 middlewares overview configuration example我突然发现你不仅要指定中间件,还必须将其应用到路由器上。

将此标签添加到 whoami 服务应该可以解决问题:

- "traefik.http.routers.whoami.middlewares=testauth"

请注意,您还可以在此处指定多个中间件,通过逗号分隔它们,这样您就可以添加您定义的其他中间件,如下所示:

- "traefik.http.routers.whoami.middlewares=testauth,test-redirectscheme,test-replacepath"

关于docker - ForwardAuth 中间件在 Traefik 中无法作为 API 网关工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56119127/

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