Mod-Proxy

Apache mod_proxy_balancer 配置

  • November 25, 2016

環境: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

我認為這將很難完美地實現。但我會首先更改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

引用自:https://serverfault.com/questions/816282