基于Traefik路径的路由

时间:2018-12-12 22:20:53

标签: docker docker-compose traefik

我有两个要从一个主机提供服务的后端。一个来自host.domain.com,另一个来自host.domain.com/path。第一个前端规则很简单:Host:host.domain.com

第二个麻烦是我。基于documentation,我相信我应该使用Host:host.domain.com;PathPrefixStrip:/path。这将在host.domain.com/path上返回200,但是当我单击指向somepage.html的链接时,它将把我发送到host.domain.com/somepage.html,因此它返回404。如果我直接转到主机.domain.com / path / somepage.html返回200。当我直接转到host.domain.com/path/index.html时,指向somepage.html的链接正确运行。

我对文档的假设/解释不正确吗?或者这完全不是Traefik的问题?

2 个答案:

答案 0 :(得分:0)

这并不是真正针对traefik的,任何不重写返回的网页内容的基于虚拟路径的反向代理(很少这样做)都会在该网页的内容具有绝对路径时出现问题。网页需要知道“ / path”并修改它给您的所有链接,或者使用相对链接,而不能以“ /”开头。这应该在您的网站,Web应用程序或Web应用程序的配置中修复。根据应用程序的不同,重新配置后,您可能需要将traefik规则调整为“ PathPrefix”而不是“ PathPrefixStrip”。

答案 1 :(得分:0)

您应该使用PathPrefix而不是PathPrefixStrip Strip 规则先删除路径,然后再将其提供给后端。

  

由于在转发之前已删除路径,所以您的后端应该在/上侦听。