概述
各服务各自配置保护会导致不一致,部分路由缺头或缺限流,单个慢后端还可能级联。把保护抽成命名中间件并组成显式顺序的链,可让能力以标签或 CRD 形式统一施加。
关键步骤
- 定义重试、限流、请求头与熔断等单个中间件。
- 按有意为之的顺序把它们组合为链。
- 通过标签或 CRD 把链附加到服务。
- 借助金丝雀路由验证头与状态行为。
验证
- 所有路由都继承同一套保护。
- 链的顺序符合设计。
- 健康检查不被限流。
- 安全头与限流头在响应中可见。
注意事项
- 中间件链为每请求增加延迟,并可能使响应被改动的位置不易排查。
- 各提供方的标签语法差异使链在跨提供方复用时需借助 CRD。
适用范围
本条目围绕「组合 Traefik 中间件实现纵深防御」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
http:
middlewares:
chain1:
chain:
middlewares: [secure-headers, rate-limit, cb]
services:
app:
loadBalancer:
servers: [{ url: "http://127.0.0.1:3000" }]