輕鬆實現Apache,Tomcat集群和負載均衡

2021-09-01 15:48:54 字數 3150 閱讀 6170

0, 環境說明

apache  :apache_2.0.55     1 個

tomcat:  apache-tomcat-5.5.17 (zip版) 2個

mod_jk:: mod_jk-apache-2.0.55.so  1個

第一部分:負載均衡

負載均衡,就是apache將客戶請求均衡的分給tomcat1,tomcat2....去處理

1.安裝apche,tomcat

按照jdk,我的路徑為:e:\ide\apache\apache2

解壓兩份tomcat, 路徑分別為 e:\ide\tomcat1,e:\ide\tomcat2

2.修改apache配置檔案http.conf

在apache安裝目錄下conf目錄中找到http.conf

在檔案最後加上下面一句話就可以了

include "e:\ide\apache\apache2\conf\mod_jk.conf"

2. http.conf 同目錄下新建mod_jk.conf檔案,內容如下

#載入mod_jk moduleloadmodule jk_module modules/mod_jk-apache-2.0.55.so

#指定 workers.properties檔案路徑jkworkersfile conf/workers.properties

#指定那些請求交給tomcat處理,"controller"為在workers.propertise裡指定的負載分配控制器

jkmount /*.jsp controller

3.在http.conf同目錄下新建 workers.properties檔案,內容如下

worker.list = controller,tomcat1,tomcat2  #server 列表

#*****===tomcat1*****===

worker.tomcat1.port=8009         #ajp13 埠號,在tomcat下server.xml配置,預設8009worker.tomcat1.host=localhost  #tomcat的主機位址,如不為本機,請填寫ip位址worker.tomcat1.type=ajp13worker.tomcat1.lbfactor = 1   #server的加權比重,值越高,分得的請求越多

#*****===tomcat2*****===

worker.tomcat2.port=9009       #ajp13 埠號,在tomcat下server.xml配置,預設8009worker.tomcat2.host=localhost  #tomcat的主機位址,如不為本機,請填寫ip位址worker.tomcat2.type=ajp13worker.tomcat2.lbfactor = 1   #server的加權比重,值越高,分得的請求越多

#*****===controller,負載均衡控制器*****===worker.controller.type=lbworker.controller.balanced_workers=tomcat1,tomcat2   #指定分擔請求的tomcatworker.controller.sticky_session=1

4.修改tomcat配置檔案server.xml

如果你在不同電腦上安裝tomcat,tomcat的安裝數量為乙個,可以不必修改tomcat配置檔案

我這裡是在同一臺電腦上安裝兩個tomcat,所以需要更改其中乙個的設定

開啟tomcat2/conf/server.xml檔案

5.編寫乙個測試jsp

建立乙個目錄test.裡面新建乙個test.jsp,內容為

<%    system.out.println("*************************==");%>

6.啟動apache,tomcat1,tomcat2,進行測試

通過 http://localhost/test/test.jsp 訪問,檢視tomcat1的視窗,可以看到列印了一行"**********"

再重新整理一次,tomcat2也列印了一條,再重新整理,可以看到請求會被tomcat1,tomcat2輪流處理,實現了負載均衡

第二部分,配置集群

只配置負載均衡還不行,還要session複製,也就是說其中任何乙個tomcat的新增的session,是要同步複製到其它tomcat, 集群內的tomcat都有相同的session

1. 修改tomcat1, tomcat2的server.xml,將集群部分配置的在注釋符刪掉,並將tomcat2的4001埠改為4002,以避免與tomcat衝突,當然,如果是兩台電腦,是不用改埠的,去掉注釋符即可

2,修改測試專案test

修改test.jsp,內容如下

server info:<%out.println(request.getlocaladdr() + " : " + request.getlocalport()+"

");%><%  out.println("

id " + session.getid()+"

");// 如果有新的 session 屬性設定  string dataname = request.getparameter("dataname");  if (dataname != null && dataname.length() > 0)

out.print("session 列表");

enumeration e = session.getattributenames();  while (e.hasmoreelements()) %>

然後在test 新建web-inf目錄,web-inf下新建web.xml,內容如下

注意:在你的應用的web.xml加入  即可

輸入** http://localhost/test/test.jsp  

新建乙個 名稱為 xiaoluo  ,值為 cdut 的session,提交查詢,新開乙個ie視窗,再提交查詢,如圖,可以看到,兩個tomcat 是負載均衡,並且session同步的

tomcat1:

<?xml version='1.0' encoding='utf-8'?>

unpackwars="true" autodeploy="true"

xmlvalidation="false" xmlnamespaceaware="false">

documentation at: /docs/config/valve.html -->

Windows下的Apache Tomcat連線

win32 apache2.0.49.zip,在壓縮包中的modules可找到mod jk2.so 將mod jk2.so拷到以下兩個目錄 tomcat home conf apache home modules 將apache home conf 下的httpd.conf作以下修改和新增 修改 一...

Bootstrap table 輕鬆實現多層表頭

在做私活的時候,有乙個需求是要在頁面上實現多層表頭。一開始有點懵,不知道怎麼來實現,我回想起在jftt的時候,曾用過flex版的多層表頭,不過那離現在已經很久遠了,久遠到flex已經被淘汰出局了。於是在網上折騰了好一會兒,終於找到一款用起來簡單,效果又很不錯的元件 bootstrap table。b...

編碼轉換輕鬆實現

在linux上進行編碼轉換時,既可以利用iconv函式族程式設計實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。一 利用iconv函式族進行編碼轉換 iconv函式族的標頭檔案是iconv.h,使用前需包含之。include iconv函式族有三...