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函式族有三...