將Apache作為LoadBalance前置機分別有三種不同的部署方式,分別是:
1
)輪詢均衡策略的配置
進入Apache的conf目錄,打開httpd.conf文件,在文件的末尾加入:
ProxyPass
/
balancer
://proxy
/ #注意這里以"/"結尾
<proxy class="hilite3">balancer</proxy>
://proxy>
Balancer
Member http://192.168.6.37:6888/
Balancer
Member http://192.168.6.38:6888/
我們來觀察上述的參數“
ProxyPass
/
balancer
://proxy/”,其中,“
ProxyPass
”是配置虛擬服務器的命令,“/”代表發送Web請求的URL前綴,如:http://myserver/或者http://myserver/aaa,這些URL都將符合上述過濾條件;“
balancer
://proxy/”表示要配置負載均衡,proxy代表負載均衡名;
Balancer
Member 及其后面的URL表示要配置的后臺服務器,其中URL為后臺服務器請求時的URL。以上面的配置為例,實現負載均衡的原理如下:
假設Apache接收到http://localhost/aaa請求,由于該請求滿足
ProxyPass
條件(其URL前綴為“/”),該請求會被分發到后臺某一個
Balancer
Member,譬如,該請求可能會轉發到 http://192.168.6.37:6888/aaa進行處理。當第二個滿足條件的URL請求過來時,該請求可能會被分發到另外一臺
Balancer
Member,譬如,可能會轉發到http://192.168.6.38:6888/。如此循環反復,便實現了負載均衡的機制。
2)
按權重分配均衡策略的配置
ProxyPass
/
balancer
://proxy
/ #注意這里以"/"結尾
<proxy class="hilite3">balancer</proxy>
://proxy>
Balancer
Member http://192.168.6.37:6888/ loadfactor=3
Balancer
Member http://192.168.6.38:6888/ loadfactor=1
參數”loadfactor”表示后臺服務器負載到由Apache發送請求的權值,該值默認為1,可以將該值設置為1到100之間的任何值。以上面的配置 為例,介紹如何實現按權重分配的負載均衡,現假設Apache收到http://myserver/aaa 4次這樣的請求,該請求分別被負載到后臺服務器,則有3次連續的這樣請求被負載到
Balancer
Member為http://192.168.6.37:6888的服務器,有1次這樣的請求被負載
Balancer
Member為http://192.168.6.38:6888后臺服務器。實現了按照權重連續分配的均衡策略。
3)
權重請求響應負載均衡策略的配置
ProxyPass
/
balancer
://proxy/ lbmethod=bytraffic
#注意這里以"/"結尾
<proxy class="hilite3">balancer</proxy>
://proxy>
Balancer
Member http://192.168.6.37:6888/ loadfactor=3
Balancer
Member http://192.168.6.38:6888/ loadfactor=1
參數“lbmethod=bytraffic”表示后臺服務器負載請求和響應的字節數,處理字節數的多少是以權值的方式來表示的。 “loadfactor”表示后臺服務器處理負載請求和響應字節數的權值,該值默認為1,可以將該值設置在1到100的任何值。根據以上配置是這么進行均 衡負載的,假設Apache接收到http://myserver/aaa請求,將請求轉發給后臺服務器,如果
Balancer
Member為http://192.168.6.37:6888后臺服務器負載到這個請求,那么它處理請求和響應的字節數是
Balancer
Member為http://192.168.6.38:6888 服務器的3倍(回想(2)均衡配置,(2)是以請求數作為權重負載均衡的,(3)是以流量為權重負載均衡的,這是最大的區別)。
看明白了沒有,根據不同的需要,可以按這三種方式進行配置。我按照第三種配置的,感覺上這種對于負載的均衡更全面合理。我的配置很簡單,如下:
先配置均衡器:
<proxy balancer:><br>BalancerMember ajp://127.0.0.1:8009/ loadfactor=1<br>BalancerMember http://192.168.10.6:8083/ loadfactor=1<br></proxy>
其中http://192.168.10.6:8083實際上是另外一個端口啟動的apache,為了測試,它就簡單的直接轉發所有請求到tomcat。
對于上次的VirtualHost進行以下的修改即可:
<virtualhost><br>ServerName www.test.com<br>DocumentRoot /www<br>DirectoryIndex index.html index.jsp<br><directory><br>Options Indexes FollowSymLinks<br>AllowOverride None<br>Order allow,deny<br>Allow from all<br></directory><br><directory><br>Options Indexes FollowSymLinks<br>AllowOverride None<br>Order allow,deny<br>Allow from all<br></directory><br>ProxyPass /nxt/images/ !<br>ProxyPass /nxt/js/ !<br>ProxyPass /nxt/css/ !<br>#ProxyPass / ajp://127.0.0.1:8009/<br>#ProxyPassReverse / ajp://127.0.0.1:8009/<br>ProxyPass / balancer://proxy/<br>ProxyPassReverse / balancer://proxy/<br></virtualhost>
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
