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。