Apache mod_proxy_balancer 配置

Apache mod_proxy_balancer 配置

环境:5 个 apache 实例(balancerX),将流量分配到 3 个应用程序服务器(serverX)。

根据请求使用相同负载因子的 mod_balancer 配置,server1 负载巨大,而其他服务器负载较小,这就是为什么无论服务器的实际负载如何,平衡器配置都以相同的方式应用于所有服务器,因此始终将到平衡器 1、2、3、4 或 5 的第一个连接重定向到 server1。由于 HW 平衡器(不幸的是无法管理)会随机为用户分配平衡器,因此我无法控制 3 台服务器是否接收相同数量的连接。

我该如何配置它才能在服务器 1、2 和 3 上具有相同的负载?

架构:

Balancer1   Balancer2   Balancer3   Balancer4   Balancer5
---------   ---------   ---------   ---------   ---------
Server1     Server1     Server1     Server1     Server1
Server2     Server2     Server2     Server2     Server2
Server3     Server3     Server3     Server3     Server3

答案1

我认为要完美实现这一点会很困难。但我首先要改变BalancerMember5 个 Apache 服务器上的指令顺序,使它们在每台服务器上都不同。例如:

Balancer1   Balancer2   Balancer3   Balancer4   Balancer5
---------   ---------   ---------   ---------   ---------
Server1     Server2     Server3     Server1     Server2
Server2     Server3     Server1     Server3     Server1
Server3     Server1     Server2     Server2     Server3

您需要第 6 个 Apache 服务器才能使其达到 100% 均匀。

请注意,以下选项是 Apache v2.4 特有的,如果您使用的是 v2.2,则仅使用第一个建议。我还会尝试不同的负载平衡方法,看看是否有区别。选项是lbmethod=bybusynesslbmethod=bytraffic(确保您加载相关模块)。如果您的底层服务器也使用 Apache,您也可以尝试lbmethod=heartbeat

相关内容