apache 負載均衡

2021-05-02 05:40:03 字數 3117 閱讀 3465

隨著訪問量的不斷提高,以及對響應速度的要求,進行負載均衡設定就顯得非常必要了。公司的系統在最初設計的時候就已經考慮到了負載均衡的規劃,www靜態伺服器配置了兩台,由於初期專案時間緊,並且訪問量並不高,所以當時只用了一台,另一台在內網中,只是進行了同步,並為發揮出效用來。此次就是對負載均衡的乙個簡單測試。

先介紹一下apache mod_proxy_balancer的幾個配置規則(從網上找的):

將apache作為loadbalance前置機分別有三種不同的部署方式,分別是:

1 )輪詢均衡策略的配置

進入apache的conf目錄,開啟httpd.conf檔案,在檔案的末尾加入:

proxypass / balancer://proxy/         #注意這裡以"/"結尾

我們來觀察上述的引數「proxypass / balancer://proxy/」,其中,「proxypass」是配置虛擬伺服器的命令,「/」代表傳送web請求的url字首,如:http://myserver/或者http://myserver/aaa,這些url都將符合上述過濾條件;「balancer://proxy/」表示要配置負載均衡,proxy代表負載均衡名;balancermember 及其後面的url表示要配置的後台伺服器,其中url為後台伺服器請求時的url。以上面的配置為例,實現負載均衡的原理如下:

假設apache接收到http://localhost/aaa請求,由於該請求滿足proxypass條件(其url字首為「/」),該請求會被分發到後台某乙個balancermember,譬如,該請求可能會**到 http://192.168.6.37:6888/aaa進行處理。當第二個滿足條件的url請求過來時,該請求可能會被分發到另外一台balancermember,譬如,可能會**到http://192.168.6.38:6888/。如此迴圈反覆,便實現了負載均衡的機制。

2) 按權重分配均衡策略的配置

proxypass / balancer://proxy/         #注意這裡以"/"結尾

引數」loadfactor」表示後台伺服器負載到由apache傳送請求的權值,該值預設為1,可以將該值設定為1到100之間的任何值。以上面的配置為例,介紹如何實現按權重分配的負載均衡,現假設apache收到http://myserver/aaa 4次這樣的請求,該請求分別被負載到後台伺服器,則有3次連續的這樣請求被負載到balancermember為http://192.168.6.37:6888的伺服器,有1次這樣的請求被負載balancermember為http://192.168.6.38:6888後台伺服器。實現了按照權重連續分配的均衡策略。

3) 權重請求響應負載均衡策略的配置

proxypass / balancer://proxy/ lbmethod=bytraffic  #注意這裡以"/"結尾

引數「lbmethod=bytraffic」表示後台伺服器負載請求和響應的位元組數,處理位元組數的多少是以權值的方式來表示的。 「loadfactor」表示後台伺服器處理負載請求和響應位元組數的權值,該值預設為1,可以將該值設定在1到100的任何值。根據以上配置是這麼進行均衡負載的,假設apache接收到http://myserver/aaa請求,將請求**給後台伺服器,如果balancermember為http://192.168.6.37:6888後台伺服器負載到這個請求,那麼它處理請求和響應的位元組數是balancermember為http://192.168.6.38:6888 伺服器的3倍(回想(2)均衡配置,(2)是以請求數作為權重負載均衡的,(3)是以流量為權重負載均衡的,這是最大的區別)。

看明白了沒有,根據不同的需要,可以按這三種方式進行配置。我按照第三種配置的,感覺上這種對於負載的均衡更全面合理。我的配置很簡單,如下:

先配置均衡器:

其中http://192.168.10.6:8083實際上是另外乙個埠啟動的apache,為了測試,它就簡單的直接**所有請求到tomcat。

對於上次的virtualhost進行以下的修改即可:

servername www.test.com

documentroot /www

directoryindex index.html index.jsp

options indexes followsymlinks

allowoverride none

order allow,deny

allow from all

options indexes followsymlinks

allowoverride none

order allow,deny

allow from all

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/

注釋掉之前的ajp**,而配置成通過balancer去處理。

通過觀察access log,的確有部分請求傳送到了8083埠的apache上,而有部分是直接ajp**到tomcat上了。對於更多的負載均衡的引數檢測,待空了再做。

Apache 負載均衡配置

版本 apache http server 2.2.22 預設安裝在 usr local httpd目錄下面,安裝成功後,進入bin目錄,執行.apachectl k start啟動apache,在瀏覽器中輸入http ip,看到it works,說明安裝成功,沒有問題。之後進入conf目錄,編輯h...

Apache負載均衡 配置

很多都在詢問apache的負載均衡配置問題。那麼我們在此,就再詳細的說一說這個具體的過程。當然,說到apache負載均衡肯定離不開tomacat的使用,以及對mod jk的了解。這些準備工作,還是大家在閒暇時間可以在學習一下,那麼我們現在就切入正題,從安裝軟體說起。一 軟體環境 二 負載均衡 用ap...

Apache 負載均衡配置

第一步 修改httpd.conf 開啟下面 第二步 在httpd.conf中增加 其中proxyset lbmethod byrequests是用來設定負載均衡的演算法。通常有三種取值 byrequests 按照請求次數均衡,預設值 bytraffic 按照流量均衡 bybusyness 按照繁忙程...