我正在尝试使用文件后端配置traefik,以联系LXC容器中的grafana服务器。
这是我的配置文件:
[file]
# rules
[backends]
[backends.backend2.servers.server1]
url = "http://192.168.255.250:3000"
[frontends]
[frontends.frontend2]
entryPoints = ["http"]
backend = "backend2"
passHostHeader = true
[frontends.frontend2.routes]
[frontends.frontend2.routes.route0]
rule = "PathPrefixStrip: /grafana"
Grafana后端监听/
因此,我可以联系http://example.com/grafana,但是我无法重定向到http://example.com/login。但是http://example.com/grafana/login响应(没有CSS,当然是因为grafana似乎使用相对URL)。
如果后端侦听根路径(/),但应在特定前缀上路由,请使用* Strip匹配器。例如,PathPrefixStrip:/ products可以匹配/ products,也可以匹配/ products / shoes和/ products / shirts。 由于路径是在转发之前剥离的,因此您的后端应侦听/。 如果您的后端正在提供资产(例如图像或Javascript文件),则它很可能必须返回正确构造的相对URL。 继续该示例,后端应返回/products/shoes/image.png(而不是/images.png,Traefik可能无法将其与同一后端关联)。 可以查询X-Forwarded-Prefix标头(自Traefik 1.3起可用)以动态构建此类URL。
似乎我必须使用X-Forwarded-Prefix标头,但我不知道如何使用它(我在文档中没有看到任何内容)。也许您可以帮助我解决这个问题?
致谢
jmc
答案 0 :(得分:0)
实际上,问题并非来自traefik。我只是忘记在/etc/grafana.ini(root_url字段)中指定路径。我认为这没有必要,因为传入查询不包含路径/ grafana(因为我们使用PathPrefixStrip)。但实际上,grafana需要它来向客户指示有效的网址。
致谢。
jmc