核心含义
proxy_next_upstream off 表示完全关闭 Nginx 的上游节点自动故障重试机制。
请求被分发到 upstream 组内某一台后端服务器后,无论发生连接失败、读写超时,还是后端返回错误响应,Nginx 都不会自动切换到组内其他节点重试,而是直接将当前结果返回给客户端。
默认行为对比
Nginx 默认为 proxy_next_upstream error timeout; :
- 仅在连接后端失败、读超时、写超时时,自动切换到下一台上游节点重试;
- 后端返回 500、502、503 等 HTTP 错误码时,默认不会触发切换重试。
关键说明
- 默认规则下,即便配置了重试条件,Nginx 也不会对 POST、PATCH 等非幂等请求执行切换重试(避免重复提交数据),需显式开启 proxy_next_upstream_non_idempotent on 才会生效;设置为 off 后,所有类型的请求都绝对不会进行上游切换。
- 该指令可配置在 http、server、location 块中,生产环境通常针对支付、下单等写操作接口单独设置,防止重复扣款、重复提交等业务异常。