HTTP 中间件概览¶
中间件挂载到路由器或服务上,可以在请求发送给后端服务器之前(或响应发送给客户端之前)对其进行调整。
中间件可以挂载到两个层级:
- 路由器层级:在请求转发到服务之前,应用于所有匹配路由器规则的请求。
- 服务层级:应用于服务处理的所有请求,无论请求由哪个路由器转发。参阅服务中间件。
两者都配置时,先执行路由器中间件,再执行服务中间件。
Traefik 提供多种中间件:有的修改请求和头,有的负责重定向,有的添加认证,等等。
使用相同协议的中间件可以组合成链,适应各种场景。
提供者命名空间
请留意配置发现一节中介绍的提供者命名空间概念。 该概念同样适用于中间件。
可用的 HTTP 中间件¶
| 中间件 | 用途 | 类别 |
|---|---|---|
| AddPrefix | 添加路径前缀 | 路径修改 |
| BasicAuth | 添加基本认证 | 安全、认证 |
| Buffering | 缓冲请求和响应 | 请求生命周期 |
| Chain | 组合多个中间件 | 其他 |
| CircuitBreaker | 避免调用不健康的服务 | 请求生命周期 |
| Compress | 压缩响应 | 内容修改 |
| ContentType | 处理 Content-Type 自动检测 | 其他 |
| DigestAuth | 添加摘要认证 | 安全、认证 |
| EncodedCharacters | 定义请求路径中允许的保留编码字符 | 安全、请求生命周期 |
| Errors | 定义自定义错误页面 | 请求生命周期 |
| ForwardAuth | 委托认证 | 安全、认证 |
| GrpcWeb | 将 gRPC Web 请求转换为 HTTP/2 gRPC 请求 | 请求 |
| Headers | 添加或更新头 | 安全 |
| IPAllowList | 限制允许的客户端 IP | 安全、请求生命周期 |
| InFlightReq | 限制同时连接的数量 | 安全、请求生命周期 |
| PassTLSClientCert | 在头中添加客户端证书 | 安全 |
| RateLimit | 限制调用频率 | 安全、请求生命周期 |
| RedirectScheme | 根据协议方案重定向 | 请求生命周期 |
| RedirectRegex | 根据正则表达式重定向 | 请求生命周期 |
| ReplacePath | 修改请求路径 | 路径修改 |
| ReplacePathRegex | 修改请求路径 | 路径修改 |
| Retry | 发生错误时自动重试 | 请求生命周期 |
| StripPrefix | 修改请求路径 | 路径修改 |
| StripPrefixRegex | 修改请求路径 | 路径修改 |
社区中间件¶
欢迎查看插件目录中的社区贡献插件。
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为 Traefik OSS 增加企业级 API 网关能力或商业支持。
为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。