簡單測(cè)試Apache是如何完成負(fù)載均衡策略配置
隨著訪問量的不斷提升,以及對(duì)響應(yīng)速度要求的苛刻,進(jìn)行負(fù)載均衡設(shè)置就顯得尤為重要了。公司的系統(tǒng)在最初設(shè)計(jì)的時(shí)候就已經(jīng)考慮到了負(fù)載均衡的規(guī)劃,www靜態(tài)服務(wù)器配置了兩臺(tái),由于初期項(xiàng)目時(shí)間緊,并且訪問量并不高,所以當(dāng)時(shí)只用了一臺(tái),另一臺(tái)在內(nèi)網(wǎng)中,只是進(jìn)行了同步,并為發(fā)揮出效用來。此次就是對(duì)負(fù)載均衡的一個(gè)簡單測(cè)試。
先介紹一下apache mod_proxy_balancer的幾個(gè)配置規(guī)則:
將Apache作為LoadBalance前置機(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ù)“lbmethod=bytraffic”表示后臺(tái)服務(wù)器負(fù)載請(qǐng)求和響應(yīng)的字節(jié)數(shù),處理字節(jié)數(shù)的多少是以權(quán)值的方式來表示的。 “loadfactor”表示后臺(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ū)別)。
看明白了沒有,根據(jù)不同的需要,可以按這三種方式進(jìn)行配置。我按照第三種配置的,感覺上這種對(duì)于負(fù)載的均衡更全面合理。我的配置很簡單,如下:
先配置均衡器:
<Proxy balancer://proxy>
BalancerMember ajp://127.0.0.1:8009/ loadfactor=1
BalancerMember http://192.168.10.6:8083/ loadfactor=1
</Proxy>
其中http://192.168.10.6:8083實(shí)際上是另外一個(gè)端口啟動(dòng)的apache,為了測(cè)試,它就簡單的直接轉(zhuǎn)發(fā)所有請(qǐng)求到tomcat。
對(duì)于上次的VirtualHost進(jìn)行以下的修改即可:
<VirtualHost *:80>
ServerName www.tsingyuan.cn
DocumentRoot /www
DirectoryIndex index.html index.jsp
<Directory “/www”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory “/control”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ProxyPass /nxt/images/ !
ProxyPass /nxt/js/ !
ProxyPass /nxt/css/ !
#ProxyPass / ajp://127.0.0.1:8009/
#ProxyPassReverse / ajp://127.0.0.1:8009/
ProxyPass / balancer://proxy/
ProxyPassReverse / balancer://proxy/
</VirtualHost>
注釋掉之前的ajp轉(zhuǎn)發(fā),而配置成通過balancer去處理。
通過觀察access log,的確有部分請(qǐng)求發(fā)送到了8083端口的apache上,而有部分是直接ajp轉(zhuǎn)發(fā)到tomcat上了。
以上是本文關(guān)于Apache 如何完成負(fù)載均衡策略配置的詳細(xì)敘述,希望本文對(duì)廣大php開發(fā)者有所幫助,感謝閱讀本文。
相關(guān)文章
CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB)
這篇文章主要介紹了CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB),需要的朋友可以參考下2016-10-10Linux 命令查詢小程序中的 WePY 云開發(fā)實(shí)踐
這篇文章主要介紹了云開發(fā)與 WePY,快速實(shí)現(xiàn) Linux 命令查詢小程序,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04linux服務(wù)器之LVS、Nginx和HAProxy負(fù)載均衡器對(duì)比總結(jié)
這篇文章主要介紹了linux服務(wù)器之LVS、Nginx和HAProxy負(fù)載均衡器對(duì)比,需要的朋友可以參考下2014-03-03linux采用scp命令拷貝文件到本地,拷貝本地文件到遠(yuǎn)程服務(wù)器的方法
今天小編就為大家分享一篇linux采用scp命令拷貝文件到本地,拷貝本地文件到遠(yuǎn)程服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07Linux系統(tǒng)防CC攻擊自動(dòng)拉黑IP增強(qiáng)版(Shell腳本)
這篇文章主要介紹了Linux系統(tǒng)防CC攻擊自動(dòng)拉黑IP增強(qiáng)版(Shell腳本),需要的朋友可以參考下2015-04-04