Apache2 tomcat6負載均衡

2021-06-23 05:02:29 字數 3795 閱讀 5134

採用軟體apache2.2.25(win32); tomcat6.0.16

首先安裝apache,一路next,安裝完成後開啟瀏覽器輸入http://localhost/回車,出現it works表示成功。

未成功的原因可能是電腦上啟用了iis服務(都使用80埠,也可更改埠),win7中點開坐下開始按鈕 右鍵計算機-管理-服務和元件中找到iis服務管理-關閉服務

由於apache 2.2整合了mod_jk功能,配置過程大幅簡化。

1、配置httpd.conf

1)找到apache的安裝路徑(英文)開啟apache2.2\conf\httpd.conf檔案進行配置

loadmodule proxy_module modules/mod_proxy.so

loadmodule proxy_ajp_module modules/mod_proxy_ajp.so

loadmodule proxy_balancer_module modules/mod_proxy_balancer.so

loadmodule proxy_connect_module modules/mod_proxy_connect.so

loadmodule proxy_ftp_module modules/mod_proxy_ftp.so

loadmodule proxy_http_module modules/mod_proxy_http.so

確定上述5項沒有被注釋掉(去掉「#」)

2)在該檔案最後加上如下內容

proxyrequests off #表示啟用反向**

#cluster表示集群名

balancermember ajp: loadfactor=1 route=jvm1 #集群成員1;loadfactor負載因子數值越大處理請求比重越大

balancermember ajp: loadfactor=1 route=jvm2 #集群成員2;loadfactor負載因子數值越大處理請求比重越大

sethandler balancer-manager

order deny,allow

deny from all

allow from all

使用ajp_proxy反向**,apache通過ajp協議與tomcat進行通訊,ip位址和埠唯一確定了tomcat節點和配置的ajp接受埠。

balancer-manager
在瀏覽器中輸入http://localhost/balancer-manager可以檢視負載情況

3)在該檔案中找到

include conf/extra/httpd-vhosts.conf
去掉注釋(「#」)

至此,對httpd.conf的配置完成。

2、配置apache2.2\conf\extra\httpd-vhosts.conf檔案

上一步開啟注釋關聯到此檔案,在此檔案中配置虛擬伺服器最下方加入如下內容

serveradmin [email protected]  #管理員郵箱

servername localhost #網域名稱(沒有可用ip位址代替)

serveralias localhost

proxypass / balancer://cluster/ stickysession=jsessionid nofailover=on lbmethod=bytraffic #cluster表示集群名

proxypassreverse / balancer://cluster/ #cluster表示集群名

lbmethod引數可以選擇設負載方式有三種:byrequests(按請求)||bytraffic(按流量)||bybusyness(按繁忙程度均衡,總是分配給活躍請求數最少的伺服器)

日誌檔案名字自己選取。

至此,該檔案配置完成。

apache的2個檔案配置完成後可以啟動試試。

3、配置tomcat的server.xml檔案

因為我在本地用了2個tomcat分別為tomcat-a,tomcat-b所以需要對其中埠進行設定區分。

tomcat-a中的埠不變,tomcat-b中對應的埠分別改為9005、8081、9009、4001避免重複就好了。

上面這句的埠對應前面apache配置檔案中的埠(ajp)
balancermember ajp: loadfactor=1 route=jvm2 #集群成員2
使用ajp協議需要如下配置(原檔案中是被注釋掉的,去掉注釋替換原來的即可),2個tomcat都要配置

這裡的jvmroute對應apache httpd.conf中balancermember中配置的route引數

對集群的配置如下,2個tomcat都要配置(也可採用預設配置,開啟原檔案被注釋的即可),注意receiver埠號不重複

tomcat集群各節點通過建立tcp鏈結來完成session的拷貝,拷貝有同步和非同步兩種模式。在同步模式下,對客戶端的響應必須在session拷貝到其他節點完成後進行;非同步模式無需等待session拷貝完成就可響應。

非同步模式更高效,但是同步模式可靠性更高。同步非同步模式由channelsendoptions引數控制,預設值是8,為非同步模式,4是同步模式,這個引數說明了集群內部伺服器訊息的傳送方式,實際上用了二進位制數的表示方式,第一位是1說明使用ack(收到確認),第二位是1說明使用同步ack,第三位是1說明使用非同步訊息的模式。

在非同步模式下,可以通過加上拷貝確認(acknowledge)來提高可靠性,此時channelsendoptions設為10。

manager用來在節點間拷貝session,預設使用deltamanager,deltamanager採用的一種all-to-all的工作方式,即集群中的節點會把session資料向所有其他節點拷貝,而不管其他節點是否部署了當前應用.

當集群中的節點數量很多並且部署著不同應用時,可以使用backupmanager,backmanager僅向部署了當前應用的節點拷貝session.

但是到目前為止backupmanager並未經過大規模測試,可靠性不及deltamanager.

membership用於發現集群中的其他節點,這裡的address用的是組播位址(multicast address),使用同乙個組播位址和埠的多個節點同屬乙個子集群,因此通過自定義組播位址和埠就可將乙個大的tomcat集群分成多個子集群.

pooledparallelsender是從tcp連線池中獲取連線,可以實現並行傳送.

4、配置你的web應用中的web.xml

至此tomcat的配置也完成。

測試:配置好你的應用後注意順序先啟動2個tomcat然後啟動apache,多次重新整理訪問應用可以在http://localhost/balancer-manage中檢視2個tomcat的負載情況

worker url

route

routeredir

factor

setstatus

elected

tofrom

ajp:

jvm110

ok20

4118.8k

ajp:

jvm210

ok19

3868.3k

Apache2 Tomcat6配置負載均衡

1.安裝apache和tomcat,這裡假定apache2.2.3,tomcat6.x 且apache安裝在apachehost,tomcat分別安裝在tomcathost1和tomcathost2上 2.修改 etc httpd conf httpd.conf檔案,確定以下行沒有被注釋掉 3.修改...

Apache2 Tomcat6配置負載均衡

1.安裝apache和tomcat,這裡假定apache2.2.3,tomcat6.x 且apache安裝在apachehost,tomcat分別安裝在tomcathost1和tomcathost2上 2.修改 etc httpd conf httpd.conf檔案,確定以下行沒有被注釋掉 3.修改...

Apache2 Tomcat6配置負載均衡

1.安裝apache和tomcat,這裡假定apache2.2.3,tomcat6.x 且apache安裝在apachehost,tomcat分別安裝在tomcathost1和tomcathost2上 2.修改 etc httpd conf httpd.conf檔案,確定以下行沒有被注釋掉 3.修改...