apache反向代理的负载均衡“平衡因子”实为balancermember指令的loadfactor权重,按正整数设置,默认1;仅在lbmethod=byrequests或bytraffic时生效,bybusyness则忽略权重。

在 Apache 中定义反向代理的负载均衡“平衡因子”,实际指的是为后端成员服务器设置 权重(loadfactor),它决定该节点接收请求的相对比例。这不是一个全局“平衡因子”参数,而是通过 BalancerMember 指令的 loadfactor 属性逐台配置的。
如何设置 loadfactor 权重
在 <proxy></proxy> 块中,为每个 BalancerMember 添加 loadfactor=N(N 为正整数,默认为 1):
-
BalancerMember http://192.168.1.10:8080 loadfactor=3→ 接收约 3 倍于默认节点的流量 -
BalancerMember http://192.168.1.11:8080 loadfactor=1→ 接收基准流量(可省略,因默认即为 1) -
BalancerMember http://192.168.1.12:8080 loadfactor=2 status=+H→ 权重为 2,且设为热备(仅故障时启用)
权重生效的前提条件
权重只在使用 lbmethod=byrequests(默认)或 lbmethod=bytraffic 策略时起作用:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 若用
lbmethod=byrequests:权重按请求数比例分配。例如两节点loadfactor=2和loadfactor=1,每 3 个请求中,前者分得 2 个,后者 1 个 - 若用
lbmethod=bytraffic:权重按响应字节数估算流量负载,适合大文件或流式服务 -
lbmethod=bybusyness不依赖权重,而是根据当前活跃连接数动态调度
完整配置示例
以下定义了一个带权重的集群,并启用粘性会话(保障登录态):
<proxy>
ProxySet lbmethod=byrequests
BalancerMember http://backend-a:8080 loadfactor=4 route=a
BalancerMember http://backend-b:8080 loadfactor=1 route=b
BalancerMember http://backend-c:8080 loadfactor=2 route=c status=+H
ProxySet stickysession=ROUTEID
</proxy>
ProxyPass "/api" "balancer://myapp/api"
ProxyPassReverse "/api" "balancer://myapp/api"
注意:route 参数需与后端应用返回的 cookie 路由标识(如 JSESSIONID 中的 route=a)匹配,才能实现会话保持。









