gpt4 book ai didi

docker - 在Traefik 2.0中设置基本身份验证以与R plumber API一起使用

转载 作者:行者123 更新时间:2023-12-02 19:54:59 25 4
gpt4 key购买 nike

我正在尝试扩大我的R plumber API的规模,并开始使用Traefik 2.0作为公开,负载均衡和保护其余用R编写的API的方式。我无法让traefik添加基本身份验证并通过路径和向运行我的API的容器查询参数。基本身份验证有效,我可以正确设置容器的反向代理,但不能同时设置反向代理。下面的设置导致404错误。

我可以很好地运行容器化的管道工API。
我可以使用traefletech / plumber docker镜像通过路径“api_test”通过traefik(如下所示)访问容器化的管道工API。
我可以使用Traefik的whoami示例(如下所示)设置基本身份验证,并且它可以正常工作(ig http://localhost/traefexample/whoami)。

我无法成功添加下面注释掉的两行。我希望这两行添加基本身份验证,并且在可行的同时,我收到404错误,而不是获得了预期的信息。

version: '3.7'

services:
reverse-proxy:
# The official v2.0 Traefik docker image
image: traefik:v2.0
# Enables the web UI and tells Traefik to listen to docker
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --api.insecure=true
- --providers.docker

ports:
# The HTTP port
- "80:80"
- "8000:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock

api_test:
# An R plumber api in a docker container
image: trestletech/plumber
labels:
- "traefik.http.routers.api_test.rule=Path(`/api_test/{path:.+}`)"
- "traefik.http.middlewares.api_test-replacepathregex.replacepathregex.regex=/api_test(.*)"
- "traefik.http.middlewares.api_test-replacepathregex.replacepathregex.replacement=$$1"
- "traefik.http.routers.api_test.middlewares=api_test-replacepathregex@docker"
# - "traefik.http.routers.api_test.middlewares=auth"
# - "traefik.http.middlewares.auth.basicauth.users=user:$$apr1$$q8eZFHjF$$Fvmkk//V6Btlaf2i/ju5n/"




traefexample:
# A container that exposes an API to show its IP address - example from traefik basic, auth is working
image: containous/whoami
labels:
- "traefik.http.routers.traefexample.rule=Path(`/traefexample/{path:.+}`)"
- "traefik.http.middlewares.traefexample-replacepathregex.replacepathregex.regex=/traefexample(.*)"
- "traefik.http.middlewares.traefexample-replacepathregex.replacepathregex.replacement=$$1"
- "traefik.http.routers.traefexample.middlewares=traefexample-replacepathregex@docker"
- "traefik.http.routers.traefexample.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=user:$$apr1$$q8eZFHjF$$Fvmkk//V6Btlaf2i/ju5n/"



使用发布的设置,我可以使用端点“o​​jit_a”,并且响应是一些随机选择的数字的平均值。

当我添加两条身份验证行(当前已注释掉)时,当我期望一个数字时会出现404错误。

最佳答案

这里

- "traefik.http.routers.api_test.middlewares=api_test-replacepathregex@docker"

删除 @docker,所以应该
- "traefik.http.routers.api_test.middlewares=api_test-replacepathregex"

关于docker - 在Traefik 2.0中设置基本身份验证以与R plumber API一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58716805/

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