least_conn无需清理,它不生成持久状态;废弃配置需删除least_conn指令、冗余weight、互斥算法及过期max_conns等参数,并通过nginx -t、/nginx_status和日志验证已切回轮询。

确认 least_conn 是否仍被使用
检查 upstream 块中是否还存在 least_conn; 这一行。如果已删除,Nginx 会自动回退到默认的 round-robin 策略——无需额外操作,重启或重载后即生效。
移除与 least_conn 冲突或冗余的配置
这些配置若保留但不再适配 least_conn,可能造成行为异常,建议一并调整:
-
删掉 weight 参数:least_conn 忽略 server 行中的
weight=,写上也不会报错,但会造成维护误解,建议直接移除 -
停用互斥算法:如 upstream 中同时存在
ip_hash、hash $arg_id或least_time,Nginx 启动会报错,必须只保留一个调度指令 -
检查 keepalive 是否仍必要:若已切换回轮询,且后端多为短连接,
keepalive 32;可酌情注释或删除,避免空闲连接堆积
清理因 least_conn 残留引发的连接状态干扰
least_conn 依赖活跃连接数统计,而该统计基于 Nginx worker 进程内维护的 TCP 连接生命周期。所谓“废弃配置残留”,常表现为:
- 旧配置中设置了
max_conns=600,但新策略下不需要限流 → 直接删掉该参数即可 - 曾启用健康检查(如
max_fails=3 fail_timeout=30s),现在改用外部探活 → 这些参数可保留,不影响轮询,也可安全删除 - upstream 中仍有已下线的 server 行(如
server 192.168.1.99:8080 down;)→ 建议彻底删除整行,减少配置冗余
验证配置已真正退出 least_conn 模式
仅靠配置文件检查不够,需确认运行时行为:
- 执行
nginx -t确保语法无误,再nginx -s reload - 访问
/nginx_status(需启用 stub_status),观察各 backend 的Active connections是否呈现近似均匀增长(轮询特征),而非明显向某节点倾斜后又跳转(least_conn 特征) - 查看 access log 中同一时段请求在不同后端的分布:least_conn 下长耗时请求会明显避开高连接数节点;轮询则基本按 server 出现顺序交替











