Apache负载均衡启用最少连接策略需配置lbmethod=bybusyness:启用mod_proxy、mod_proxy_http、mod_proxy_balancer和mod_slotmem_shm模块;在<Proxy>中设置ProxySet lbmethod=bybusyness,并可配合loadfactor实现加权最少连接,依赖后端keep-alive连接状态。

Apache 负载均衡启用最少连接(Least Connections)策略,核心是通过 mod_proxy_balancer 模块配置 lbmethod=bybusyness —— 这是 Apache 官方对“最少连接”算法的命名(注意不是 byrequests 或 bytraffic)。
确认并启用必要模块
确保以下模块已加载(通常在 /etc/apache2/mods-enabled/ 或 httpd.conf 中启用):
mod_proxymod_proxy_httpmod_proxy_balancer-
mod_slotmem_shm(用于共享状态,必需)
Ubuntu/Debian 系统可执行:a2enmod proxy proxy_http proxy_balancer slotmem_shm
然后重启 Apache。
配置最少连接策略的 Proxy 设置
在虚拟主机配置(如 /etc/apache2/sites-available/000-default.conf)或主配置中添加:
<Proxy "balancer://mycluster">
BalancerMember http://192.168.1.10:8080 loadfactor=1
BalancerMember http://192.168.1.11:8080 loadfactor=1
ProxySet lbmethod=bybusyness
ProxySet timeout=30
ProxySet maxattempts=3
</Proxy>
ProxyPass "/" "balancer://mycluster/"
ProxyPassReverse "/" "balancer://mycluster/"
关键点说明:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
lbmethod=bybusyness:Apache 内部术语,等价于“最少连接”,它实时统计各后端的活跃连接数(包括 keep-alive 连接),优先分发请求给当前连接最少的节点 -
loadfactor可配合使用——若某台服务器性能更强,设为 2,它会承担约两倍于loadfactor=1节点的连接数(即加权最少连接) -
timeout和maxattempts建议显式设置,避免故障节点拖慢整体响应
验证与监控
启用负载均衡管理界面便于观察实时连接状态:
ProxyPass "/balancer-manager" "!"`
<Location "/balancer-manager">
SetHandler balancer-manager
Require ip 127.0.0.1 ::1 192.168.1.0/24
</Location>
访问 http://your-server/balancer-manager,即可看到每个 BalancerMember 的当前连接数(Busy 列)、请求计数和健康状态。该界面直观反映 bybusyness 是否按预期分配流量。
注意事项
该策略依赖后端真实连接状态,因此要求:
- 后端服务支持 HTTP keep-alive(默认开启),否则连接数波动大,效果减弱
- 避免在高并发短连接场景(如大量 AJAX 请求)下过度依赖——此时
byrequests可能更稳定 - 若需会话保持(如旧版 Java 应用),可叠加
stickysession=JSESSIONID,但会削弱最少连接的动态均衡能力

















