簡體   English   中英

Apache 負載均衡器不適用於心跳 lbmethod

[英]Apache load balancer doesn't work for heartbeat lbmethod

我正在研究在 Apache 服務器中實現的負載平衡算法。 對於bybusynessbytrafficbyrequests方法,Apache 服務器可以正常工作。 當負載平衡方法設置為heartbeat時會出現此問題。 當我嘗試從瀏覽器訪問負載平衡器服務器時,我收到 503 Service Unavailable 並且日志文件中有以下錯誤:

AH01170: balancer://mycluster: All workers are in error state

我在 httpd.conf 文件中有以下配置:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule status_module modules/mod_status.so
LoadModule watchdog_module modules/mod_watchdog.so
LoadModule heartbeat_module modules/mod_heartbeat.so
LoadModule heartmonitor_module modules/mod_heartmonitor.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so

Listen *:8888
ServerName http://localhost:8888

HeartbeatListen localhost:8888
HeartbeatAddress localhost:8888
HeartbeatMaxServers 20

<VirtualHost *:8888>

<Proxy balancer://mycluster>
    BalancerMember http://localhost:8081 route=1
    BalancerMember http://localhost:8082 route=2
    ProxySet lbmethod=heartbeat
</Proxy>

<Location "/balancer-manager">
    SetHandler balancer-manager
</Location>

ProxyPass        /test balancer://mycluster
ProxyPassReverse /test balancer://mycluster

</VirtualHost>

根據文檔,心跳方法的所有必要模塊都已加載。 此外,正確設置了slotmem模塊,這由日志確認:

AH02283: Using slotmem from mod_heartmonitor

正如我提到的,此配置適用於其他算法( bybusynessbytrafficbyrequests )。 我沒有找到任何示例顯示使用心跳方法的平衡器的正確配置,官方文檔說此方法的狀態為“實驗”: https ://httpd.apache.org/docs/trunk/mod/mod_heartbeat.html。 如果有人在 Apache 負載平衡主題方面有經驗,我將不勝感激任何提示。

我找到了解決方案。 首先,您需要為 HeartbeatAddress(在平衡器成員配置中)和 HeartbeatListen(在負載平衡器服務器配置中)指定相同的地址。 其次,它必須是多播地址,因此它不能像我之前的配置那樣是localhost 正確的心跳指令示例:

#load-balancer server configuration file    
HeartbeatListen 239.0.0.1:27999

#all balancer members configuration file    
HeartbeatAddress 239.0.0.1:27999

通過這樣的配置,負載均衡器心跳方法可以正常工作。 更多細節在這里: https ://www.apachelounge.com/viewtopic.php?p=41271#41271

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM