适用场景

网关是所有流量的必经之路,配置不当会放大故障:重试风暴、超时级联、路由写错导致大面积 404。

配置步骤(限流、熔断与超时)

# 限流(按 IP 或按用户)
nginx.ingress.kubernetes.io/limit-rps: "20"
nginx.ingress.kubernetes.io/limit-burst-multiplier: "5"
# 超时
nginx.ingress.kubernetes.io/proxy-connect-timeout: "5"
nginx.ingress.kubernetes.io/proxy-read-timeout: "30"

关键参数与建议

  • 路由规则可读:按域名/路径拆分,避免一条规则覆盖全站
  • 灰度:按权重或请求头路由,先小流量验证
  • 限流与熔断:按接口维度配置,保护后端不被打垮
  • 超时与重试:重试次数要克制(尤其是写请求),避免放大
  • 鉴权:在网关统一做认证,后端只做授权校验

容易踩的坑

  • 限流阈值按拍脑袋,正常用户被拦
  • 超时设得过长,故障时连接堆积
  • 写请求配置自动重试,造成重复下单

验证与巡检

# 压测验证:ab/wrk 打流,观察 429 与错误率
wrk -t4 -c100 -d30s http://网关IP/api/health
  • 巡检:限流命中符合预期、超时无级联、写请求不重试

小结

网关配置的验收:灰度能切换、限流能触发、超时不级联、日志能看到真实客户端 IP。四条都测过再上线。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。