IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)服務(wù)器WEB服務(wù)器 → Apache負(fù)載均衡設(shè)置方法: mod_proxy

Apache負(fù)載均衡設(shè)置方法: mod_proxy

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  第一次看到這個(gè)標(biāo)題時(shí)我也很驚訝,Apache居然還能做負(fù)載均衡?真是太強(qiáng)大了。經(jīng)過(guò)一番調(diào)查后發(fā)現(xiàn)的確可以,而且功能一點(diǎn)都不差。這都?xì)w功于 mod_proxy 這個(gè)模塊。不愧是強(qiáng)大的Apache啊。

  廢話少說(shuō),下面就來(lái)解釋一下負(fù)載均衡的設(shè)置方法。

  一般來(lái)說(shuō),負(fù)載均衡就是將客戶端的請(qǐng)求分流給后端的各個(gè)真實(shí)服務(wù)器,達(dá)到負(fù)載均衡的目的。還有一種方式是用兩臺(tái)服務(wù)器,一臺(tái)作為主服務(wù)器(Master),另一臺(tái)作為熱備份(Hot Standby),請(qǐng)求全部分給主服務(wù)器,在主服務(wù)器當(dāng)機(jī)時(shí),立即切換到備份服務(wù)器,以提高系統(tǒng)的整體可靠性。

  負(fù)載均衡的設(shè)置

  Apache可以應(yīng)對(duì)上面這兩種需求。先來(lái)討論一下如何做負(fù)載均衡。首先需要啟用Apache的幾個(gè)模塊:

  程序代碼

  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提供代理服務(wù)器功能,mod_proxy_balancer提供負(fù)載均衡功能, mod_proxy_http讓代理服務(wù)器能支持HTTP協(xié)議。如果把mod_proxy_http換成其他協(xié)議模塊(如mod_proxy_ftp),或許能支持其他協(xié)議的負(fù)載均衡,有興趣的朋友可以自己嘗試一下。

  然后要添加以下配置:

  程序代碼

ProxyRequests Off
  
  BalancerMember http://node-a.myserver.com:8080
  BalancerMember http://node-b.myserver.com:8080
     ProxyPass / balancer://mycluster
  # 警告:以下這段配置僅用于調(diào)試,絕不要添加到生產(chǎn)環(huán)境中!!!
  
  SetHandler balancer-manager
  order Deny,Allow
  Deny from all
  Allow from localhost
  

  從上面的 ProxyRequests Off 這條可以看出,實(shí)際上負(fù)載均衡器就是一個(gè)反向代理,只不過(guò)它的代理轉(zhuǎn)發(fā)地址不是某臺(tái)具體的服務(wù)器,而是一個(gè) balancer:// 協(xié)議:

  ProxyPass / balancer://mycluster協(xié)議地址可以隨便定義。然后,在段中設(shè)置該balancer協(xié)議的內(nèi)容即可。 BalancerMember指令可以添加負(fù)載均衡組中的真實(shí)服務(wù)器地址。

  下面那段是用來(lái)監(jiān)視負(fù)載均衡的工作情況的,調(diào)試時(shí)可以加上(生產(chǎn)環(huán)境中禁止使用!),然后訪問(wèn) http://localhost/balancer-manager/ 即可看到負(fù)載均衡的工作狀況。

  OK,改完之后重啟服務(wù)器,訪問(wèn)你的Apache所在服務(wù)器的地址,即可看到負(fù)載均衡的效果了。打開(kāi) balancer-manager 的界面,可以看到請(qǐng)求是平均分配的。

  如果不想平均分配怎么辦?給 BalancerMember 加上 loadfactor 參數(shù)即可,取值范圍為1-100。比如你有三臺(tái)服務(wù)器,負(fù)載分配比例為 7:2:1,只需這樣設(shè)置:

  程序代碼

  ProxyRequests Off
  
  BalancerMember http://node-a.myserver.com:8080 loadfactor=7
  BalancerMember http://node-b.myserver.com:8080 loadfactor=2
  BalancerMember http://node-c.myserver.com:8080 loadfactor=1
     ProxyPass / balancer://mycluster

  默認(rèn)情況下,負(fù)載均衡會(huì)盡量讓各個(gè)服務(wù)器接受的請(qǐng)求次數(shù)滿足預(yù)設(shè)的比例。如果要改變算法,可以使用 lbmethod 屬性。如:

  程序代碼

 ProxyRequests Off
  
  BalancerMember http://node-a.myserver.com:8080 loadfactor=7
  BalancerMember http://node-b.myserver.com:8080 loadfactor=2
  BalancerMember http://node-c.myserver.com:8080 loadfactor=1
     ProxyPass / balancer://mycluster
  ProxySet lbmethod=bytraffic

  lbmethod可能的取值有:

  lbmethod=byrequests 按照請(qǐng)求次數(shù)均衡(默認(rèn))

  lbmethod=bytraffic 按照流量均衡

  lbmethod=bybusyness 按照繁忙程度均衡(總是分配給活躍請(qǐng)求數(shù)最少的服務(wù)器)

  各種算法的原理請(qǐng)參見(jiàn)[url=http://httpd.apache.org/docs/2.2/en/mod/mod_proxy_balancer.html]Apache的文檔[/url]。

  熱備份(Hot Standby)

  熱備份的實(shí)現(xiàn)很簡(jiǎn)單,只需添加 status=+H 屬性,就可以把某臺(tái)服務(wù)器指定為備份服務(wù)器:

  程序代碼

 ProxyRequests Off
  
  BalancerMember http://node-a.myserver.com:8080
  BalancerMember http://node-b.myserver.com:8080 status=+H
     ProxyPass / balancer://mycluster

  從 balancer-manager 界面中可以看到,請(qǐng)求總是流向 node-a ,一旦node-a掛掉, Apache會(huì)檢測(cè)到錯(cuò)誤并把請(qǐng)求分流給 node-b。Apache會(huì)每隔幾分鐘檢測(cè)一下 node-a 的狀況,如果node-a恢復(fù),就繼續(xù)使用node-a。

關(guān)鍵詞標(biāo)簽:Apache,負(fù)載均衡

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈 ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈 IIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin IIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin 在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻略 在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻略 win2000server IIS和tomcat5多站點(diǎn)配置 win2000server IIS和tomcat5多站點(diǎn)配置

相關(guān)下載

    人氣排行 XAMPP配置出現(xiàn)403錯(cuò)誤“Access forbidden!”的解決辦法 WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置 訪問(wèn)網(wǎng)站403錯(cuò)誤 Forbidden解決方法 如何從最大用戶并發(fā)數(shù)推算出系統(tǒng)最大用戶數(shù) Server Application Unavailable的解決辦法 報(bào)錯(cuò)“HTTP/1.1 400 Bad Request”的處理方法 Windows Server 2003的Web接口 http 500內(nèi)部服務(wù)器錯(cuò)誤的解決辦法(windows xp + IIS5.0)