Apache負載均衡設置方法 mod_proxy使用介紹
2024-08-27 18:27:58
供稿:網友
一般來說,負載均衡就是將客戶端的請求分流給后端的各個真實服務器,達到負載均衡的目的。還有一種方式是用兩臺服務器,一臺作為主服務器(Master),另一臺作為熱備份(Hot Standby),請求全部分給主服務器,在主服務器當機時,立即切換到備份服務器,以提高系統的整體可
第一次看到這個標題時我也很驚訝,Apache居然還能做負載均衡?真是太強大了。經過一番調查后發現的確可以,而且功能一點都不差。這都歸功于 mod_proxy 這個模塊。不愧是強大的Apache啊。
廢話少說,下面就來解釋一下負載均衡的設置方法。
一般來說,負載均衡就是將客戶端的請求分流給后端的各個真實服務器,達到負載均衡的目的。還有一種方式是用兩臺服務器,一臺作為主服務器(Master),另一臺作為熱備份(Hot Standby),請求全部分給主服務器,在主服務器當機時,立即切換到備份服務器,以提高系統的整體可靠性。
1. 負載均衡的設置
1).基本配置
Apache可以應對上面這兩種需求。先來討論一下如何做負載均衡。假設一臺apache服務器域名為www.a.com, 首先需要啟用Apache的幾個模塊:
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
mod_proxy提供代理服務器功能,mod_proxy_balancer提供負載均衡功能, mod_proxy_http讓代理服務器能支持HTTP協議。如果把mod_proxy_http換成其他協議模塊(如mod_proxy_ftp),或許能支持其他協議的負載均衡,有興趣的朋友可以自己嘗試一下。
然后要添加以下配置:
Httpd.conf代碼
代碼如下:
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080
</Proxy>
ProxyPass / balancer://mycluster/
# 警告:以下這段配置僅用于調試,絕不要添加到生產環境中!??!
<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Deny from all
Allow from localhost
</Location>
注:node-a.myserver.com,node-b.myserver.com是另外兩臺服務器的域名,不是當前服務器的域名
從上面的 ProxyRequests Off 這條可以看出,實際上負載均衡器就是一個反向代理,只不過它的代理轉發地址不是某臺具體的服務器,而是一個 balancer:// 協議:
ProxyPass / balancer://mycluster協議地址可以隨便定義。然后,在<Proxy>段中設置該balancer協議的內容即可。 BalancerMember指令可以添加負載均衡組中的真實服務器地址。
下面那段<Location /balancer-manager>是用來監視負載均衡的工作情況的,調試時可以加上(生產環境中禁止使用?。缓笤L問 http://localhost/balancer-manager/ 即可看到負載均衡的工作狀況。