down参数是Nginx upstream中用于手动标记后端节点不可用的配置项,添加后该节点立即停止参与负载均衡,健康检查仍运行但不改变其状态,需重载配置生效。

当上游服务节点出现异常,Nginx 作为反向代理网关可通过 down 参数快速将其从负载均衡池中剔除,实现手动故障隔离,避免请求继续打到问题节点上。
什么是 down 参数?
down 是 Nginx upstream 模块中 server 指令的一个标记参数,用于显式声明该后端节点“不可用”。被标记为 down 的节点:
- 不会参与任何负载均衡调度(包括轮询、加权、ip_hash 等)
- 健康检查(如
health_check)仍会运行,但不影响其 down 状态 - 配置重载后状态持久生效,直到手动移除该参数并 reload
如何手动下线异常节点?
操作分三步,无需重启 Nginx 进程:
- 编辑 upstream 配置,在对应 server 行末尾添加
down - 执行
nginx -t验证语法正确性 - 执行
nginx -s reload重载配置,变更立即生效
例如,原配置:
upstream backend {server 192.168.1.10:8080;
server 192.168.1.11:8080;
}
发现 192.168.1.11 响应超时,改为:
server 192.168.1.10:8080;
server 192.168.1.11:8080 down;
}
与自动健康检查的区别
down 是运维主动干预手段,和 Nginx 自带的被动健康检查(如 max_fails/fail_timeout)互补但逻辑不同:
- 健康检查依赖失败次数触发自动摘除,存在滞后性;
down是即时生效的确定性操作 - 健康检查可能因偶发错误误判,
down则完全由人工判断驱动,更可控 - 二者可共存:已标记
down的节点,健康检查结果不再影响其状态
恢复节点前要注意什么?
重新启用节点不能只删掉 down,还需确认:
- 后端服务已恢复正常(日志、监控、curl 测试均通过)
- 若使用了连接池或长连接,注意旧连接可能尚未释放,建议观察几分钟再验证流量
- 灰度恢复时,可先调低权重(如
weight=1),观察稳定后再恢复默认值










