【问题标题】:Access two dashboards with same url path using single domain name in treafik在 traefik 中使用单个域名访问具有相同 url 路径的两个仪表板
【发布时间】:2022-11-11 00:49:26
【问题描述】:

我正在使用traefik 访问我的仪表板。

但问题是我有一些在内部调用相同路径的仪表板。 例如:

  • 仪表板 => /api/v1/services

  • 仪表板2 => /apis/v1/services

在这种情况下,如何为这两个仪表板使用相同的域名?

此外,一些仪表板在内部使用不同的路径,如下所示:

  • 仪表板3 =>

               /logo.png
               /user/login
               /umi
               /vendor
               ...
    

我可以使用单独的域名访问这些仪表板。

  • dashboard1.demo.com
  • dashboard2.demo.com
  • dashboard3.demo.com

所以我想为所有这些仪表板使用与dashboard.demo.com 相同的域名。

知道怎么做吗?

【问题讨论】:

    标签: traefik api-gateway traefik-ingress


    【解决方案1】:

    对于更用户友好的方式,我建议使用 PathPrefix(请参阅https://doc.traefik.io/traefik/routing/routers/#rule 的 [Router Rules])来区分您的仪表板。例如。:

    • https://dashboard.demo.com/dashboard1/apis/v1/services
    • https://dashboard.demo.com/dashboard2/apis/v1/services

    为了让您的服务继续正常工作,您需要使用中间件 StripPrefixStripprefixRegex 重写路径。

    另一种非用户友好的方式可能是使用基于 Header 的路由。

    【讨论】:

    • 但是在单击仪表板上的某些选项卡后,仪表板内部会调用 API (/apis/v1/services)。所以仍然可以使用 StripPrefix 或 StripprefixRegex 将路径从/apis/v1/services 重写为/dashboard1/apis/v1/services
    • 这取决于仪表板应用程序。如果仪表板使用相对路径,它应该可以工作。大多数应用程序允许在配置中添加基本路径来解决像您这样的问题。如果不使用并且使用绝对路径,它将中断。由于似乎无法区分仪表板(例如特定查询参数、特定标题),您唯一的选择 Leitwolf 是每个仪表板使用(子)域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    相关资源
    最近更新 更多