Traefik重写路径

Traefik rewrite path

我在 my.host.com/foo/bar/docpath 上有一份文档,我希望它在 url my.host.com/docpath 上可用。我所有的 Traefik 配置都在 docker-compose 文件中。

这是我服务容器中的配置:

labels:
      traefik.enable: "true"
      traefik.http.routers.myservice.entrypoints: secure
      traefik.http.routers.myservice.middlewares: rewritepath
      traefik.http.routers.myservice.rule: "Host(`my.host.com`) && Path(`/docpath`)"

在 Traefik 的容器标签中:

labels:
      traefik.http.middlewares.rewritepath.addprefix.prefix: /foo/bar

问题:当我请求 my.host.com/docpath 时,出现 404 错误。我做错了什么?

(假定我使用简单规则正确访问 my.host.com/foo/bar/docpath:“Host(`my.host.com`)”并且没有中间件)

我对traefik的理解是,中间件是按照规则调用的

试试这个。

  - "traefik.http.routers.myservice.rule: "Host(`my.host.com`) && Path(`/docpath`)"
  - "traefik.http.routers.myservice.middlewares=rewritepath"
  - "traefik.http.middlewares.rewritepath.addprefix.prefix=/foo/bar"