最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中连接最少策略确保集群处理效率均衡
时间:2026-07-10 09:54:53 编辑:袖梨 来源:一聚教程网
最少连接策略(least_conn)是“谁闲谁接活”,即实时将新请求分发给当前活跃连接数最少的后端节点,适用于性能不均、响应差异大或长连接场景。
最少连接策略(least_conn)在 Nginx 中不是“平均分发”,而是“谁闲谁接活”——它实时统计每个后端服务器当前的活跃连接数,把新请求交给连接数最少的那个节点。这种动态响应真实负载的方式,特别适合后端性能不均、响应时间差异大或长连接场景,能有效防止个别节点堆积连接、超时增多、响应变慢等问题。
least_conn 适用的真实场景
轮询(round-robin)假设每个请求耗时相近,一旦出现以下情况,least_conn 就更可靠:
- 部分服务涉及数据库查询、文件上传等慢操作,连接长期占用
- 后端服务器 CPU/内存配置不同,承载能力明显不一致
- 使用 HTTP/1.1 持久连接、WebSocket 或 gRPC 等长连接协议
- 监控发现某台机器连接数持续高于其他节点,但请求量并无明显倾斜
基础配置写法与关键细节
只需在 upstream 块中声明 least_conn,无需额外参数:
upstream backend { least_conn; server 192.168.1.10:8080; server 192.168.1.11:8080 weight=2; server 192.168.1.12:8080 max_fails=3 fail_timeout=30s;}
注意:least_conn 本身不按 weight 分配,但 weight 仍生效——它只影响初始连接建立时的概率倾向;真正决策依据仍是实时连接数。健康检查参数(如 max_fails 和 fail_timeout)照常起作用。
配合 keepalive 提升实际效果
若不启用连接复用,每次请求都新建 TCP 连接,least_conn 统计容易滞后,削弱均衡效果。建议显式配置连接池:
upstream backend { least_conn; keepalive 32; # 每个工作进程最多缓存 32 个空闲长连接 server 192.168.1.10:8080; server 192.168.1.11:8080;}<p>server {location / {proxy_pass <a href="https://www.php.cn/link/65b5b8d1f89bf53a5713bc3afdd83e9e">https://www.php.cn/link/65b5b8d1f89bf53a5713bc3afdd83e9e</a>;proxy_http_version 1.1;proxy_set_header Connection '';</p><h1>其他 proxy_* 配置保持不变</h1><pre class='brush:php;toolbar:false;'>}
}
这样 Nginx 会复用后端空闲连接,降低握手开销,也让连接数统计更稳定、更贴近真实负载压力。
验证策略是否生效
启用 stub_status 模块可查看各 upstream server 的实时连接状态:
- 在 server 块中添加
location /nginx_status { stub_status; } - 访问该地址,观察
Active connections及各 upstream 节点的连接分布 - 对比开启前后连接数波动趋势,确认 least_conn 是否在动态平衡负载
相关文章
- EROLABS工作实验室游戏网址如何打开-EROLABS实验室游戏网页登录入口链接汇总 07-22
- 爱看漫画免费看·入口高清-爱看漫画免费看·画质优选 07-22
- 鹅鸭杀拉铃游戏黑话详情 07-22
- 明日方舟终末地物理队玩法详情 07-22
- MANWA漫蛙网页版-漫蛙MANWA2在线网页 07-22
- 雄心之上孙权怎么样 07-22