apache與tomcat負載集群的3種方法

2021-07-02 12:32:37 字數 3510 閱讀 2333

集群tomcat主要是解決session共享的問題

花了兩天時間學習apache與tomcat的整合方法,現在把學習成果記錄下來。

apache與tomcat負載集群整合方法有3種jk、jk_proxy、http_proxy

本次整合使用的軟體版本:

本次測試是1個apache整合兩個tomcat。

安裝apache http server省略,訪問位址為

安裝tomcat,解壓apache-tomcat-6.0.20.zip,測試時我是把兩個tomcat分開放在不同的虛擬機器,其中乙個是和apache同一臺虛擬機器。

兩個tomcat分別命名為worker2和worker3

先說tomcat.worker2的配置:

server.xml

(1)配置http監聽埠,這裡埠設為8079,該步驟非必要,只要不衝突就行了。

(2)配置ajp監聽埠,這裡埠設為8077,該步驟非必要,只要不衝突就行了。

(3)配置伺服器標識,這裡標識名配置為:worker2,新增jvmroute="worker2",該步驟必須。

在engine節點啟用集群配置,只需去掉cluster節點前的注釋就行了,該步驟必須,配置了集群才能實現session複製,如果只有乙個集群,只按我下邊的配置就行了,如果多個集群,則不能按此配置,tomcat伺服器內的幫助文件/docs/cluster-howto.html,/docs/config/cluster.html有介紹,需要的可以參考下。

要實現session複製,還需要在context.xml新增屬性distributable="true",如下:

如果不想在context.xml中新增distributable="true",還有另一方法是在應用程式的web.xml中新增,不過這方法我沒有測試。

配置完成,訪問位址為:

另乙個tomcat.worker3的配置

server.xml

system.out.println("call test.jsp");

%>   

sessionid:   

loadmodule jk_module modules/mod_jk.so

jkworkersfile conf/workers.properties

jklogfile logs/mod_jk.log

jkloglevel debug

jkmount  /*.do loadbalancer

jkmount  /*.jsp loadbalancer

增加conf/workers.properties檔案,新增內容

worker.list=loadbalancer

worker.worker2.port=8077   #ajp的監聽埠

worker.worker2.host=108.88.3.105

worker.worker2.type=ajp13

worker.worker2.lbfactor=1

worker.worker3.port=9009

worker.worker3.host=127.0.0.1

worker.worker3.type=ajp13

worker.worker3.lbfactor=1

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=worker2,worker3 #這裡在的worker2、worker3為需要與上邊tomcat設定的別名一致

worker.loadbalancer.sticky_session=1

配置完成任務,訪問/test/test.jsp,檢查是否能正常訪問。

2、ajp_proxy

去掉httpd.conf檔案中下面內容的注釋(刪掉#號),開啟下邊的配置

注意:

除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so

如果是採用ajp_proxy,需要載入mod_proxy_ajp.so這個模組;

如果是採用http_proxy,需要載入mod_proxy_http.so這個模組;

httpd.conf,刪除剛才jk方式的配置內容,增加下邊的配置

proxyrequests off

balancermember ajp: loadfactor=1 route=worker3

balancermember ajp: loadfactor=1 route=worker2

conf/extra/httpd-vhosts.conf增加配置

serveradmin ***x@***.com

servername localhost

serveralias localhost

proxypass / balancer://loadbalancer/ stickysession=jsessionid nofailover=on

proxypassreverse / balancer://loadbalancer/

errorlog "logs/loadbalancer-error.log"

customlog "logs/loadbalancer-access.log" common

配置完成任務,訪問/test/test.jsp,檢查是否能正常訪問。

http_proxy的配置與ajp_proxy類似,修改方法2的httpd.conf配置如下,其它不變

proxyrequests off

balancermember  loadfactor=1 route=worker3

balancermember  loadfactor=1 route=worker2

配置完成任務,訪問/test/test.jsp,檢查是否能正常訪問。

apache_tomcat

apache整合tomcat 配置負載均衡

apache mysql 第一步 找到apache的httpd.conf 檔案,加入下面這段話 設定apache與tomcat之間的連線,讓apache將請求 到tomcat中去 loadmodule jk module modules mod jk.so 設定worker佇列,這個檔案中實現負載均...

Apache配置為Tomcat集群的負載均衡器

1 開啟 usr local apache2 conf 目錄下的 httpd.conf 檔案,在檔案最後新增如下配置專案,如圖 4 2 1 所示。proxyrequests off proxypass balancer mycluster balancermember ajp localhost 1...

基於Apache的Tomcat負載均衡和集群

apache提供了2種方式與tomcat實現集群,即基於apache的mod jk以及mod proxy。mod jk配置較複雜,一般是老版本在使用,目前一般常用的是mod proxy方式。反向 負載均衡 apache jk tomcat 使用 伺服器可以將請求 給內部的web伺服器,讓 伺服器將請...