我有两个要从一个主机提供服务的后端。一个来自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的问题?
答案 0 :(得分:0)
这并不是真正针对traefik的,任何不重写返回的网页内容的基于虚拟路径的反向代理(很少这样做)都会在该网页的内容具有绝对路径时出现问题。网页需要知道“ / path”并修改它给您的所有链接,或者使用相对链接,而不能以“ /”开头。这应该在您的网站,Web应用程序或Web应用程序的配置中修复。根据应用程序的不同,重新配置后,您可能需要将traefik规则调整为“ PathPrefix”而不是“ PathPrefixStrip”。
答案 1 :(得分:0)
您应该使用PathPrefix
而不是PathPrefixStrip
。 Strip 规则先删除路径,然后再将其提供给后端。
由于在转发之前已删除路径,所以您的后端应该在/上侦听。