down参数用于静态标记上游服务器彻底下线,reload后立即生效:不参与负载均衡、不触发健康检查、不参与故障转移,且必须置于server行末尾单独使用。

直接在 upstream 的 server 行末尾加 down,reload 配置即可立即隔离节点——不发探测、不转发请求、不影响其他节点,是最轻量可控的手动下线方式。
down 参数的核心作用
它不是靠失败计数或超时判断,而是静态标记。Nginx 初始化 upstream 时就读取该状态,后续所有调度都会跳过带 down 的 server 条目:
- 完全不参与负载均衡,新请求零流量进入
- 不触发健康检查(即使启用了 health_check),也不产生任何探测请求
- 不参与故障转移逻辑,哪怕集群只剩一台正常节点,它也不会被“拉回来”
- 与 backup 不同:backup 是备用角色,down 是彻底剔除
正确配置 down 的写法
必须写在 server 行末尾,且不能与其他动态参数混用:
- ✅ 正确:
server 192.168.1.10:8080 down; - ❌ 错误:
server 192.168.1.10:8080 max_fails=1 down;(配置校验失败) - ❌ 错误:
server 192.168.1.10:8080; down;(语法无效) - ✅ 可组合 backup:
server 192.168.1.11:8080 backup;,用于主节点 down 后自动接管
下线与恢复的完整流程
整个过程无需重启 Nginx 主进程,业务无感:
- 确认目标节点已停止接收新请求(如观察 access_log 停止增长)
- 执行
nginx -s reload生效,流量实时切走 - 维护完成后,先验证后端服务可用(如 curl 检查 HTTP 响应)
- 删掉配置中的 down 关键字,再次 reload 即可回归流量
搭配 backup 实现自动接管
若需隔离主节点的同时让备用机立刻承接流量,可提前配置 backup 节点:
- 非 backup 节点全被设为 down 或宕机时,backup 才会被激活
- 平时完全静默,不参与轮询、不消耗连接、不被探测
- 例如:
server 192.168.1.12:8080 backup;,适合灾备或灰度切换场景


















