Nginx 本身不提供标准断路器能力,但可通过被动健康检查(max_fails/fail_timeout)、接口级限流与错误拦截、OpenResty+Lua实现三态熔断、以及主动健康检查等组合方式,在负载均衡层实现生产级熔断效果。
Nginx 本身不提供标准断路器(Circuit Breaker)能力,但通过组合原生模块与合理配置,可在负载均衡层实现贴近生产要求的熔断效果——核心是“感知异常→隔离节点→降级响应→动态恢复”。这是开源 Nginx 唯一开箱即用的熔断机制,依赖真实请求失败反馈,无需额外模块。
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;
仅踢节点不够细粒度,高危接口(如支付、下单)需要独立防护策略。
limit_req_zone $uri zone=pay_limit:10m rate=1r/s;
proxy_intercept_errors on; 配合 error_page 500 502 503 504 /fallback.html;
当需要错误率统计、半开试探、跨实例状态同步时,必须借助 OpenResty 的 Lua 能力。
标准 Nginx 不支持主动探测,但生产环境强烈建议补足这一环,提升故障识别速度。
lua-resty-healthcheck
check interval=3 rise=2 fall=5 timeout=1;,探 /health 端点check_http_expect_alive http_2xx http_3xx; 精确控制健康标准