2026.05.22 | youres | 12次围观
前言
在Nginx负载均衡的六大算法中,least_conn是一个经常被低估但非常实用的动态策略。
什么是least_conn算法
least_conn是一种动态负载均衡算法,核心逻辑:新请求优先转发给当前活跃连接数最少的后端服务器。
为什么不用轮询
轮询有一个隐含假设:每台请求的处理时间大致相同。现实中这个假设经常不成立。
least_conn核心工作原理
Nginx收到一个新请求需要转发时,执行逻辑:1.遍历upstream中所有可用的后端服务器;2.读取每台的当前活跃连接数;3.计算conns/weight;4.选出有效负载值最小的那一台。
权重如何参与运算
least_conn不是纯粹看连接数,而是看加权后的连接数。
多worker进程下如何共享连接数
Nginx默认是多worker进程架构,每个worker都有自己的内存空间。解决方法:用zone指令在共享内存中维护连接数状态。
完整配置示例
基础版配置示例:upstream backend { zone backend 64k; least_conn; server 192.168.1.10:8080 weight=3; }
适用场景
- 请求处理时间差异大
- 后端性能不一致
- 长连接或WebSocket代理
总结
least_conn的核心价值在于动态感知后端负载。
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论