跳转至

StripPrefix

在转发请求之前从路径中删除前缀

从url路径中删除指定的前缀。

配置示例

# 删除前缀 /foobar 和 /fiibar
labels:
  - "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar"
# 删除前缀 /foobar 和 /fiibar
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-stripprefix
spec:
  stripPrefix:
    prefixes:
      - /foobar
      - /fiibar
# 删除前缀 /foobar 和 /fiibar
[http.middlewares]
  [http.middlewares.test-stripprefix.stripPrefix]
    prefixes = ["/foobar", "/fiibar"]
# 删除前缀 /foobar 和 /fiibar
http:
  middlewares:
    test-stripprefix:
      stripPrefix:
        prefixes:
          - "/foobar"
          - "/fiibar"

配置选项

常规

StripPrefix 中间件:

  • 删除匹配的前缀路径。
  • 将匹配的路径前缀存储在 X-Forwarded-Prefix 头中。

Tip

如果你的后端在根路径(/)上监听,但是应该在特定前缀上是路由可达的,请使用 StripPrefix 中间件。

prefixes

prefixes 选项定义要从请求 URL 中移除的前缀路径。

例如,/products 将匹配 products 路径,但是也会匹配 products/shoes/products/shirts

由于路径是在转发之前被去掉的,所以你的后端应该在 / 上监听。

如果你的后端还在提供资源(比如图片或者 Javascript 文件),则它很可能必须返回正确构造的相对 URL。后端应返回 /products/shoes/image.png(而不是 Traefik 可能无法将其与同一后端关联的 /images.png)。

可以查询 X-Forwarded-Prefix Header 来动态构建此类 URL。