【问题标题】:How to add url prefix for server api with traefik?如何使用 traefik 为服务器 api 添加 url 前缀?
【发布时间】:2020-09-10 05:48:21
【问题描述】:

我使用traefik v2 作为网关。我有一个前端容器与主机 https://some.site.com 一起运行,它由 traefik 提供支持。

现在我有一个带有多个服务的微服务服务器,它们都在监听 80 端口。我想在路径https://some.site.com/api/service1https://some.site.com/api/service2 上为后端服务器提供服务...

我试过traefik.http.routers.service1.rule=(Host(some.site.com) && PathPrefix(/api/service1)) 但没用,traefik.http.middlewares.add-api.addprefix.prefix=/api/service1 也没用;

我该如何实现?

【问题讨论】:

    标签: microservices traefik


    【解决方案1】:

    您可以发布您的服务的 docker-compose 配置吗? 如果您使用中间件,您可能需要指定服务。喜欢

    traefik.http.routers.service1.middlewares=add-api
    traefik.http.middlewares.add-api.addprefix.prefix=/api/service1
    

    【讨论】:

    • 是的,没错。但是traefik.http.routers.service1.rule=Host(some.site.com) && PathPrefix(/service1) 也被绑定了。
    • 在 traefik v2.2 中不适合我:level=error msg="addprefix cannot be a standalone element (type *dynamic.AddPrefix)" providerName=docker。直到现在我还无法理解成为standalone element 的含义以及如何使用addprefix
    • 实际上我错过了标签中的.prefix=。但现在我得到了499 Client Closed Request' caused by: context canceled
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2022-11-17
    • 2014-01-26
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多