使用Apache作為前端負載均衡器

2021-08-23 11:57:59 字數 2933 閱讀 1196

在某些場景中,我們需要在前端放置乙個apache作為負載均衡器,後台有若干臺apusic或者其它的類似於tomcat/weblogic等應用伺服器,客戶端傳送到apache的請求,將被分配到後台的這些真正完成請求的伺服器上。本文描述如何使用apache作為負載均衡器的方法和不同的負載均衡的配置。

在某些場景中,我們需要在前端放置乙個apache作為負載均衡器,後台有若干臺apusic或者其它的類似於tomcat/weblogic等應用伺服器,客戶端傳送到apache的請求,將被分配到後台的這些真正完成請求的伺服器上。本文描述如何使用apache作為負載均衡器的方法。

我們假設apahce安裝在 myserver 這台伺服器上,並且希望使用者訪問http://myserver/ 時,能夠將這些請求被負載到後台的兩台伺服器上,分別是: 和

一、安裝並重新編譯apache

1、linux下apache的安裝

1)解壓

2)解壓以後,cd httpd-2.2.3 進入解壓後的目錄,在終端執輸入以下命令:

預設情況下,apache安裝是不會將這些檔案編譯進核心,因此,需要人工載入,而通過上述操作,在編譯時會將這些dso檔案編譯到核心中。

3)在終端輸入:make

4)在終端輸入:make install

5)進入apache的bin目錄,在終端輸入apachectl –k start

6)在瀏覽器中輸入http://myserver,預設是80埠,如果出現it works!,說明apache已經正常啟動。

2、window下apache的安裝

4)在瀏覽器中輸入http://myserver,預設是80埠,如果出現it works!,說明apache已經正常啟動。

二、配置apache作為loadbalance

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

1)輪詢均衡策略的配置

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

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

balancermember

balancermember

我們來觀察上述的引數「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,譬如,該請求可能會**到 aaa進行處理。當第二個滿足條件的url請求過來時,該請求可能會被分發到另外一台balancermember,譬如,可能會**到。如此迴圈反覆,便實現了負載均衡的機制。

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

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

balancermember loadfactor=3

balancermember loadfactor=1

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

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

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

balancermember loadfactor=3

balancermember loadfactor=1

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

注:每次修改httpd.conf,用apachectl –k restart重新啟動apache。

使用Apache作為前端負載均衡器

在某些場景中,我們需要在前端放置乙個apache作為負載均衡器,後台有若干臺apusic或者其它的類似於tomcat weblogic等應用伺服器,客戶端傳送到apache的請求,將被分配到後台的這些真正完成請求的伺服器上。本文描述如何使用apache作為負載均衡器的方法和不同的負載均衡的配置。在某...

使用Apache作為前端負載均衡器

在某些場景中,我們需要在前端放置乙個apache作為負載均衡器,後台有若干臺apusic或者其它的類似於tomcat weblogic等應用伺服器,客戶端傳送到apache的請求,將被分配到後台的這些真正完成請求的伺服器上。本文描述如何使用apache作為負載均衡器的方法和不同的負載均衡的配置。在某...

安裝apache作為負載均衡

建立安裝資料夾 mkdir apache2 解壓檔案 檢視埠 netstat an grep 80 安裝.configure prefix home zxg apache2 enable so enable mods shared proxy make make install 配置httpd.co...