Traefik 代理中间件概览
HTTP 中间件概览¶
中间件可以附加到路由器或服务上,是在请求发送到后端服务器之前(或者在响应发送回客户端之前)对请求进行调整的一种手段。
中间件可以在两个层级附加:
- 路由器级: 应用于匹配该路由器规则的所有请求,转发到服务之前执行。
- 服务级: 应用于该服务处理的所有请求,而不管哪个路由器转发的请求。参见服务中间件。
当两者都配置时,路由器中间件先执行,然后才是服务中间件。
Traefik 中有多种可用的中间件,有些可以修改请求、修改请求头,有些负责重定向,有些添加认证,等等。
使用相同协议的中间件可以组合到链中以适应各种场景。
关于 Provider 命名空间
请注意配置发现 一节中描述的 Provider 命名空间概念。它也适用于中间件。
可用的 HTTP 中间件
| 中间件 | 用途 | 领域 |
|---|---|---|
| AddPrefix | 添加路径前缀 | 路径修改器 |
| BasicAuth | 添加 Basic 认证 | 安全、认证 |
| Buffering | 缓冲请求/响应 | 请求生命周期 |
| Chain | 组合多个中间件 | 杂项 |
| CircuitBreaker | 防止调用不健康的服务 | 请求生命周期 |
| Compress | 压缩响应 | 内容修改器 |
| ContentType | 处理 Content-Type 自动检测 | 杂项 |
| DigestAuth | 添加 Digest 认证 | 安全、认证 |
| 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,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。
为 Traefik OSS 添加 API 网关能力既快速又无需任何迁移改造。无需推倒重来,所有配置保持不变。可以通过这个短视频 了解实际效果。