Nginx启用least_conn负载均衡需在upstream块中添加least_conn;指令,优先分发请求至活跃连接数最少的后端,适合处理耗时差异大、长连接多的场景,并建议配合max_fails、fail_timeout和backup提升容错能力。

Nginx 中启用最少连接数(least_conn)负载均衡,只需在 `upstream` 块中添加 `least_conn;` 指令即可。它会让 Nginx 优先把新请求分发给当前活跃连接数最少的后端服务器,适合后端处理耗时差异大、连接生命周期不均的场景。
最少连接数配置写法
在 `http` 块内定义 upstream 时,直接加入 least_conn 关键字:
upstream backend {
least_conn;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
配合健康检查更可靠
单独用 least_conn 不会自动剔除故障节点,建议搭配以下参数提升容错能力:
- max_fails=2:连续失败 2 次后标记该服务器为不可用
- fail_timeout=30s:30 秒内不向该服务器转发新请求
- backup:可为某台服务器加 backup 标识,仅当其他全宕机时启用
示例:
upstream backend {
least_conn;
server 192.168.1.10:8080 max_fails=2 fail_timeout=30s;
server 192.168.1.11:8080 max_fails=2 fail_timeout=30s;
server 192.168.1.12:8080 backup;
}
和轮询、权重的区别要清楚
least_conn 不看请求顺序,也不按权重比例,只实时比较各后端的当前连接数(包括正在处理的长连接、Keep-Alive 连接等)。所以它更适合:
- 后端接口响应时间波动大(如含文件上传、复杂查询)
- 存在大量长连接或 WebSocket 连接的业务
- 服务器硬件配置接近,但瞬时负载差异明显
如果后端性能差距大,建议改用 weight;若需用户会话保持,应选 ip_hash。
验证是否生效
重启 Nginx 后,可通过以下方式确认:
- 查看 Nginx 错误日志,确认无 upstream 相关语法报错
- 用
curl -I http://your-domain/多次请求,结合后端 access log 观察分发是否偏向连接数少的机器 - 使用
nginx -T输出完整配置,检查 upstream 块是否被正确加载











