【问题标题】:how to use X-Forwarded-Prefix in file backend如何在文件后端使用 X-Forwarded-Prefix
【发布时间】:2018-10-17 10:11:03
【问题描述】:

我正在尝试使用文件后端配置 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)。

根据documentation

如果您的后端侦听根路径 (/) 但应该可以在特定前缀上路由,请使用 *Strip 匹配器。例如,PathPrefixStrip: /products 将匹配 /products 但也匹配 /products/shoes 和 /products/shirts。 由于在转发之前路径已被剥离,因此您的后端应在 / 上进行侦听。 如果您的后端正在提供资产(例如,图像或 Javascript 文件),那么它很可能必须返回正确构建的相对 URL。 继续这个例子,后端应该返回 /products/shoes/image.png (而不是 Traefik 可能无法与同一后端关联的 /images.png)。 可以查询 X-Forwarded-Prefix 标头(自 Traefik 1.3 起可用)以动态构建此类 URL。

看来我必须使用 X-Forwarded-Prefix 标头,但我不知道如何使用它(我在文档中没有看到任何内容)。也许你能帮我解决这个问题?

问候

jmc

【问题讨论】:

    标签: http-headers reverse-proxy grafana traefik


    【解决方案1】:

    其实问题不在于traefik。我只是忘了在 /etc/grafana.ini (root_url 字段)中指定路径。我认为没有必要,因为传入的查询不包含路径 /grafana(因为我们使用 PathPrefixStrip)。但实际上,grafana 需要它来向客户端指示有效的 url。

    问候。

    jmc

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 2019-01-26
      • 1970-01-01
      • 2017-09-27
      • 2020-11-12
      • 2012-01-05
      • 2019-03-09
      • 2017-01-07
      • 2013-10-22
      相关资源
      最近更新 更多