Mod-Proxy
Apache mod_proxy_balancer 配置
環境:5 個 apache 實例 (balancerX),在 3 個應用伺服器 (serverX) 之間分配流量。
使用具有相同負載因子的請求的 mod_balancer 配置,server1 的負載很大,而其他的負載較小,這就是為什麼平衡器配置以相同的方式應用於所有伺服器,無論它們的實際負載如何,所以總是第一個與 balancer1、2、3、4 或 5 的連接被重定向到 server1。由於由於硬體平衡器(不幸的是無法管理),使用者被隨機分配了平衡器,因此我無法控制 3 台伺服器接收相同數量的連接。
如何將其配置為在 server1、2 和 3 上具有相同的負載?
架構:
Balancer1 Balancer2 Balancer3 Balancer4 Balancer5 --------- --------- --------- --------- --------- Server1 Server1 Server1 Server1 Server1 Server2 Server2 Server2 Server2 Server2 Server3 Server3 Server3 Server3 Server3
我認為這將很難完美地實現。但我會首先更改
BalancerMember
5 台 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=bybusyness
和lbmethod=bytraffic
(確保載入相關模組)。如果您的底層伺服器也使用 Apache,您也可以嘗試lbmethod=heartbeat