Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評(píng)論排行榜

          如何使用Apache作為前端負(fù)載均衡器(轉(zhuǎn)自李其的文檔)

          作者: 李其 上次修改時(shí)間: 2007-04-19 15:53

          在某些場(chǎng)景中,我們需要在前端放置一個(gè)Apache作為負(fù)載均衡器,后臺(tái)有若干臺(tái)Apusic或者其它的類似于Tomcat/WebLogic等應(yīng)用服務(wù)器,客戶端發(fā)送到Apache的請(qǐng)求,將被分配到后臺(tái)的這些真正完成請(qǐng)求的服務(wù)器上。本文描述如何使用Apache作為負(fù)載均衡器的方法和不同的負(fù)載均衡的配置。

          ?????? 在某些場(chǎng)景中,我們需要在前端放置一個(gè)Apache作為負(fù)載均衡器,后臺(tái)有若干臺(tái)Apusic或者其它的類似于Tomcat/WebLogic等應(yīng)用服務(wù)器,客戶端發(fā)送到Apache的請(qǐng)求,將被分配到后臺(tái)的這些真正完成請(qǐng)求的服務(wù)器上。本文描述如何使用Apache作為負(fù)載均衡器的方法。

          ?????? 我們假設(shè)Apahce安裝在 myserver 這臺(tái)服務(wù)器上,并且希望用戶訪問http://myserver/ 時(shí),能夠?qū)⑦@些請(qǐng)求被負(fù)載到后臺(tái)的兩臺(tái)服務(wù)器上,分別是:http://192.168.6.37:8080/ 和 http://192.168.6.37:6888/

          ?

          一、安裝并重新編譯Apache

          1、linux下Apache的安裝

          下載最新的Apache安裝包httpd-2.2.3.tar.gz文件

          1) 解壓

          ???????? gzip –d httpd-2.2.3.tar.gz

          ???????? tar xvf httpd-2.2.3.tar

          2) 解壓以后,cd httpd-2.2.3 進(jìn)入解壓后的目錄,在終端執(zhí)輸入以下命令:

          ./configure --prefix=/usr/local/httpd --enable-so --enable-proxy --enable-proxy-ajp --enable-proxy-http --enable-proxy-ftp --enable-proxy-connect?--enable-proxy-balancer

          ????? 默認(rèn)情況下,Apache安裝是不會(huì)將這些文件編譯進(jìn)內(nèi)核,因此,需要人工加載,而通過上述操作,在編譯時(shí)會(huì)將這些DSO文件編譯到內(nèi)核中。

          3) 在終端輸入:make

          4) 在終端輸入:make install

          5) 進(jìn)入Apache的bin目錄,在終端輸入apachectl –k start

          6) 在瀏覽器中輸入http://myserver,默認(rèn)是80端口,如果出現(xiàn)It works!,說明Apache已經(jīng)正常啟動(dòng)。

          2、window下Apache的安裝

          1) 下載apache_2.2.2-win32-x86-no_ssl.msi版本或其他版本的apache
          2) 點(diǎn)擊該文件,就可以直接安裝
          3) 要配置負(fù)載均衡,進(jìn)入apache的安裝目錄下的conf目錄,打開httpd.conf文件,將文件中mod_proxy.so、 mod_proxy_ajp.so、mod_proxy_balancer.so、mod_proxy_connect.so、??mod_proxy_http.so 、mod_proxy_ftp.so所在行的注釋去掉,就可以進(jìn)行負(fù)載均衡的配置。

          4) 在瀏覽器中輸入http://myserver,默認(rèn)是80端口,如果出現(xiàn)It works!,說明Apache已經(jīng)正常啟動(dòng)。

          二、配置Apache作為L(zhǎng)oadBalance

          將Apache作為L(zhǎng)oadBalance前置機(jī)分別有三種不同的部署方式,分別是:

          1 )輪詢均衡策略的配置

          進(jìn)入Apache的conf目錄,打開httpd.conf文件,在文件的末尾加入:

          ProxyPass / balancer://proxy/???????? #注意這里以"/"結(jié)尾

          <Proxy balancer://proxy>

          ????? ?BalancerMember http://192.168.6.37:6888/

          ?????? BalancerMember http://192.168.6.38:6888/

          </Proxy>

          ????? 我們來觀察上述的參數(shù)“ProxyPass / balancer://proxy/”,其中,“ProxyPass”是配置虛擬服務(wù)器的命令,“/”代表發(fā)送Web請(qǐng)求的URL前綴,如:http://myserver/或者h(yuǎn)ttp://myserver/aaa,這些URL都將符合上述過濾條件;“balancer://proxy/”表示要配置負(fù)載均衡,proxy代表負(fù)載均衡名;BalancerMember 及其后面的URL表示要配置的后臺(tái)服務(wù)器,其中URL為后臺(tái)服務(wù)器請(qǐng)求時(shí)的URL。以上面的配置為例,實(shí)現(xiàn)負(fù)載均衡的原理如下:

          ????? 假設(shè)Apache接收到http://localhost/aaa請(qǐng)求,由于該請(qǐng)求滿足ProxyPass條件(其URL前綴為“/”),該請(qǐng)求會(huì)被分發(fā)到后臺(tái)某一個(gè)BalancerMember,譬如,該請(qǐng)求可能會(huì)轉(zhuǎn)發(fā)到 http://192.168.6.37:6888/aaa進(jìn)行處理。當(dāng)?shù)诙€(gè)滿足條件的URL請(qǐng)求過來時(shí),該請(qǐng)求可能會(huì)被分發(fā)到另外一臺(tái)BalancerMember,譬如,可能會(huì)轉(zhuǎn)發(fā)到http://192.168.6.38:6888/。如此循環(huán)反復(fù),便實(shí)現(xiàn)了負(fù)載均衡的機(jī)制。

          2) 按權(quán)重分配均衡策略的配置

          ProxyPass / balancer://proxy/???????? #注意這里以"/"結(jié)尾

          <Proxy balancer://proxy>

          ??????? BalancerMember http://192.168.6.37:6888/? loadfactor=3

          ??????? BalancerMember http://192.168.6.38:6888/? loadfactor=1

          </Proxy>

          ????? 參數(shù)”loadfactor”表示后臺(tái)服務(wù)器負(fù)載到由Apache發(fā)送請(qǐng)求的權(quán)值,該值默認(rèn)為1,可以將該值設(shè)置為1到100之間的任何值。以上面的配置為例,介紹如何實(shí)現(xiàn)按權(quán)重分配的負(fù)載均衡,現(xiàn)假設(shè)Apache收到http://myserver/aaa 4次這樣的請(qǐng)求,該請(qǐng)求分別被負(fù)載到后臺(tái)服務(wù)器,則有3次連續(xù)的這樣請(qǐng)求被負(fù)載到BalancerMember為http://192.168.6.37:6888的服務(wù)器,有1次這樣的請(qǐng)求被負(fù)載BalancerMember為http://192.168.6.38:6888后臺(tái)服務(wù)器。實(shí)現(xiàn)了按照權(quán)重連續(xù)分配的均衡策略。

          3) 權(quán)重請(qǐng)求響應(yīng)負(fù)載均衡策略的配置

          ProxyPass / balancer://proxy/ lbmethod=bytraffic? #注意這里以"/"結(jié)尾

          <Proxy balancer://proxy>

          ???????? BalancerMember http://192.168.6.37:6888/? loadfactor=3

          ???????? BalancerMember http://192.168.6.38:6888/ ?loadfactor=1

          ?</Proxy>

          ?????? 參數(shù)“l(fā)bmethod=bytraffic”表示后臺(tái)服務(wù)器負(fù)載請(qǐng)求和響應(yīng)的字節(jié)數(shù),處理字節(jié)數(shù)的多少是以權(quán)值的方式來表示的。“l(fā)oadfactor”表示后臺(tái)服務(wù)器處理負(fù)載請(qǐng)求和響應(yīng)字節(jié)數(shù)的權(quán)值,該值默認(rèn)為1,可以將該值設(shè)置在1到100的任何值。根據(jù)以上配置是這么進(jìn)行均衡負(fù)載的,假設(shè)Apache接收到http://myserver/aaa請(qǐng)求,將請(qǐng)求轉(zhuǎn)發(fā)給后臺(tái)服務(wù)器,如果BalancerMember為http://192.168.6.37:6888后臺(tái)服務(wù)器負(fù)載到這個(gè)請(qǐng)求,那么它處理請(qǐng)求和響應(yīng)的字節(jié)數(shù)是BalancerMember為http://192.168.6.38:6888 服務(wù)器的3倍(回想(2)均衡配置,(2)是以請(qǐng)求數(shù)作為權(quán)重負(fù)載均衡的,(3)是以流量為權(quán)重負(fù)載均衡的,這是最大的區(qū)別)。

          注:每次修改httpd.conf,用apachectl –k restart重新啟動(dòng)Apache。

          posted on 2008-03-04 16:08 zYx.Tom 閱讀(2778) 評(píng)論(1)  編輯  收藏

          評(píng)論

          # re: 如何使用Apache作為前端負(fù)載均衡器(轉(zhuǎn)自李其的文檔) 2008-03-04 22:11 binge

          很通俗  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 维西| 洪洞县| 来安县| 庆元县| 磴口县| 永兴县| 拉萨市| 贵南县| 左贡县| 定日县| 深水埗区| 航空| 隆林| 开阳县| 揭西县| 小金县| 长汀县| 安泽县| 元阳县| 闸北区| 克拉玛依市| 子长县| 长汀县| 琼结县| 泰和县| 资阳市| 石柱| 柘城县| 汉源县| 灯塔市| 龙南县| 荆门市| 昌宁县| 琼中| 正定县| 康平县| 云和县| 二连浩特市| 连平县| 南雄市| 偃师市|