我正在尝试设置 Traefik 来替换我的 Nginx 反向代理设置。 我的域设置如下: - 我可以使用http://example.com访问不同的服务,并通过使用子路径检测我应该代理的服务。

反向代理的 Nginx 配置

我尝试使用 Traefik 重新创建相同的设置。 首先使用 ReplacePathRegex,然后使用 StripPrefix。 我的 api 请求工作正常,但是当我尝试使用 Portainer 时,Web 浏览器发出的请求忽略了 /portaier 部分,这会导致 Web ui 中断。

例如:我向http://example.com/portiner提出请求。 我得到响应,然后连续的请求应该是这样的: http://example.com/portainer/vendor1.css : http://example.com/portainer/vendor1.css而是它提出这样的请求: http://example.com/vendor1.css : http://example.com/vendor1.css

有没有办法设置 Traefik 行为以完全匹配 Nginx proxy_pass

我发现这篇文章为我提供了部分解决方案: Traefik 中是否有与 ReverseProxyPass for Apache 等效的方法? . 当我通过在末尾添加“/”向http://example.com/portiner/发出请求时,Portainer 似乎正在工作。 我试图用forceSlash修复它,但它没有做任何改变

带有 Traefik 的 Portainer 的当前设置

是否可以使用或不使用尾随“/”?

这是请求在/portainer/portainer/样子: /portainer 请求

/搬运工/请求

这是我当前的 Traefik 配置(我只使用 Docker): Traefik 配置

#1楼 票数:0

Stripprefix 中间件用于在转发请求之前从路径中删除前缀。 根据您的配置, /portainer/portainer本身之后的所有内容都将被剥离。 在您的情况下,它还将删除尾部斜杠。 如果需要将/转发到Portainer,则需要使用portainer (不带斜杠)来配置stripprefix中间件的前缀。

#2楼 票数:0 已采纳

我找到了一个解决方案: https : //community.containo.us/t/middleware-to-add-the-if​​-needed/1895

这是我必须添加到我的 portainer 容器中的labels才能使其工作的内容: - traefik.http.middlewares.strip-prefix.chain.middlewares=strip-prefix-1,strip-prefix-2 - traefik.http.middlewares.strip-prefix-1.redirectregex.regex=^(https?://[^/]+/[a-z0-9_]+)$$ - traefik.http.middlewares.strip-prefix-1.redirectregex.replacement=$${1}/ - traefik.http.middlewares.strip-prefix-1.redirectregex.permanent=true - traefik.http.middlewares.strip-prefix-2.stripprefixregex.regex=/[a-z0-9_]+

这不是理想的解决方案,因为我认为应该有一种更简单的方法来实现它,但目前它满足了我的需求。

  ask by Jan Jaworski translate from so

未解决问题?本站智能推荐:

1回复

当WordPress位于子文件夹中时,无法访问管理员

我使用此Docker映像安装了WordPress。 我将WordPress安装在子文件夹( https://thibault.vlacich.fr/blog )中。 我正在使用Traefik进行路由。 这是我的docker-compose文件: 一切正常,管理员除外。 当我转
1回复

traefik 入口:服务无法访问

我刚刚部署了 traefik: 我正在使用带有 2 个工人的k3d集群。 安装 traefik 后,我意识到有几个类似入口的资源: 第一个问题是:为什么有这么多类似ingress的资源? 我可以在localhost/dashboard下访问我刚刚部署的 traefik 仪表localho
2回复

无法访问 docker 容器上的 RabbitMQ UI

我目前正在做一个项目,我在 Microsoft Azure 上有一个虚拟机,我试图在 Traefik 反向代理的帮助下通过不同的路由访问多个 Docker 容器。 除了反向代理,我需要的第一个服务是 RabbitMQ,我应该能够在/rmq路由上访问它的用户界面。 现在,我有以下 docker-com
1回复

Traefik 无法访问仪表板

我对 Traefik 有问题。 我的所有服务都正常,Traefik 完成他的工作,检索 Lets Encrypt 的证书,在我的不同应用程序之间进行负载均衡。 我的问题是我无法访问仪表板,它询问我登录名/密码,但我在 docker-compose.yml 中通知了它。 如果你有想法。 谢谢
2回复

带有 traefik v2 的 portainer 的 docker-compose 给出“失败:无法检索服务器设置和状态”

我目前很难将我的 traefik v1 容器更新到 v2。 我设置了一个自动 http->https 转发的 traefik 容器。 现在我想让 portainer 使用以下 docker-compose 文件运行: 现在,当我使用docker-compose up启动容器时,我得到:
1回复

Traefik 和 k3d:无法访问仪表板

这是我的k3d集群创建命令: 这是我的节点: 我已经使用默认的 helm 安装命令安装了 traefik: 之后,还安装了一个ingressroute以到达仪表板: Name: traefik-dashboard Namespace: traefik Labels:
1回复

无法访问 Traefik 后面的 Docker 容器

我试图访问在我的远程服务器上运行的 whoami 容器,但只能得到“404 page not found”错误。 尝试访问 traefik 仪表板时,我得到了相同的结果。 我的 docker-compose.yml: $USERDIR 和 $DOMAIN 在我的 .env 文件中定义。 所
2回复

为什么我的portainer和traefik不公开?

我正在设置一个Docker集群,并尝试在Docker Manager上获得正常的traefik反向和portainer + agent。 但是该容器不是公共可用的。 我是Docker和反向代理的新手,所以我没有尝试超过显示的代码。 开始于:docker stack deploy -