轉(zhuǎn)自:http://blog.ixpub.net/html/60/12690260-38040.html
昨天配置Apache+2Tomcat做負(fù)載均衡,在網(wǎng)上查了不少資料,有不少都不夠完整,現(xiàn)在把資料整理了一下,貼出來(lái)以供參考。
1 說(shuō)明
本配置實(shí)現(xiàn)的是多臺(tái)機(jī)器訪問(wèn)的負(fù)載均衡。它使用Apache來(lái)實(shí)現(xiàn)動(dòng)態(tài)負(fù)載均衡,并且實(shí)現(xiàn)了會(huì)話綁定機(jī)制,即用戶第一次訪問(wèn)的會(huì)話將綁定在首次訪問(wèn)的tomcat上,防止會(huì)話信息丟失。
該配置所運(yùn)行的環(huán)境為Windows 2000 server,實(shí)現(xiàn)兩臺(tái)機(jī)器的負(fù)載均衡,一臺(tái)機(jī)器運(yùn)行apache,另外兩臺(tái)機(jī)器運(yùn)行tomcat.該配置稍做修改就可以配置在其他操作系統(tǒng)并能實(shí)現(xiàn)一臺(tái)服務(wù)器跑多個(gè)tomcat的負(fù)載均衡,以及多于兩臺(tái)服務(wù)器的負(fù)載均衡。
2 需要的軟件
Apache 2.0.55 download
http://httpd.apache.org/download.cgi
最新版本是2.2.0,但是jk module最新的是支持2.0.55的
Tomcat 5.0
http://tomcat.apache.org/tomcat-5.0-doc/index.html
用tomcat5.0的原因是最近使用Tomcat5.5,發(fā)現(xiàn)做網(wǎng)絡(luò)連接時(shí)非常慢,比如連數(shù)據(jù)庫(kù)或者連socket服務(wù)器時(shí),我不清楚是不是我配置的原因,但是最后查不出來(lái),還是換到5.0上比較穩(wěn)定。
The JK module
http://tomcat.apache.org/download-connectors.cgi
對(duì)于Apache來(lái)說(shuō),很多推薦都是使用jk2,但是tomcat小組已經(jīng)決定放棄jk2,因?yàn)閖k可以適用于更多的服務(wù)器類(lèi)型而不是單單Apache,所以我們?yōu)榱碎L(zhǎng)遠(yuǎn)著想,還是用JK吧。
J2sdk 1.4.2
http://java.sun.com/j2se/1.4.2/download.html
3 編譯、安裝和配置Apache
3.1 解包、編譯和安裝
安裝Apache和Tomcat+J2sdk,沒(méi)什么好說(shuō)的。
3.2 基本配置
環(huán)境變量中加入
TOMCAT_HOME=<tomcat安裝路徑>
JAVA_HOME=<java安裝路徑>
JAVA_OPTS=-Xms64M -Xmx512M
Xms是運(yùn)行tomcat的java heap的最小大小, Xms是最大大小。
3.3 拷貝mod_jk模塊文件
拷貝mod_jk.so到Apache安裝目錄的modules目錄下
3.4 在mod_jk.conf配置
編輯Apache的配置文件Apache安裝目錄的conf/httpd.conf
加入一行
include conf\mod_jk.conf
在conf目錄下創(chuàng)建mod_jk.conf文件,內(nèi)容如下:
--------------------------------------mod_jk.conf----------------------------------------------
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context / to worker named loadBalancer
JkMount /*.jsp loadBalancer
--------------------------------------------mod_jk.conf-----------------------------------------------
3.5 workers.properties 文件
在 conf目錄下生成該文件,該文件告訴apache 每個(gè)負(fù)載均衡的tomcat服務(wù)的運(yùn)行參數(shù),如機(jī)器名和端口號(hào)等。
-----------------------------------------workers.properties-------------------------------
#
# workers.properties
#
# list the workers by name
worker.list=tomcat1, tomcat2, loadBalancer
# ------------------------
# First tomcat server
# ------------------------
worker.tomcat1.port=8009 //第一臺(tái)tomcat服務(wù)所在機(jī)器監(jiān)聽(tīng)端口
worker.tomcat1.host=hostname1 //第一臺(tái)tomcat服務(wù)所在機(jī)器ip地址
worker.tomcat1.type=ajp13
# Specify the size of the open connection cache.
#worker.tomcat1.cachesize
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor=100
# ------------------------
# Second tomcat server
# ------------------------
worker.tomcat2.port=8009 //第二臺(tái)tomcat服務(wù)所在機(jī)器監(jiān)聽(tīng)端口
worker.tomcat2.host=hostname2 //第二臺(tái)tomcat服務(wù)所在機(jī)器ip地址
worker.tomcat2.type=ajp13
# Specify the size of the open connection cache.
#worker.tomcat2.cachesize
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.tomcat2.lbfactor=100
# ------------------------
# Load Balancer worker
# ------------------------
#
# The loadbalancer (type lb) worker performs weighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# worker.
worker.loadBalancer .type=lb
worker.loadBalancer.balanced_workers=tomcat1, tomcat2
#
# END workers.properties
#
-----------------------------------------workers.properties-----------------------------
4 配置Tomcat 服務(wù)器
修改conf/server.xml文件
在跑第一個(gè)tomcat實(shí)例的機(jī)器上,在大約第100行, 替換:
<Engine name="Standalone" defaultHost="localhost" debug="0">
為:
<Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0">
對(duì)跑第二個(gè)tomcat實(shí)例的機(jī)器上,替換為 jvmRoute="tomcat2".
注
意,一定是替換這一行,而包含在原來(lái)的engine里面的host不做更改。有的文檔寫(xiě)得是在配置中加入一行<Engine
jvmRoute="tomcat1" name="Standalone" defaultHost="localhost"
debug="0"><Engine>,其實(shí)是不對(duì)的,這樣負(fù)載均衡是沒(méi)有問(wèn)題的,但是不能做session綁定了,也就是說(shuō)同一用戶
會(huì)在兩臺(tái)服務(wù)器上跳來(lái)跳去。這是由于jvmRoute不正確引起的,因?yàn)槿绻皇羌尤胍恍械脑?,是沒(méi)有什么作用的,Engine仍然是原來(lái)的
Engine,而原來(lái)的Engine中jvmRoute是不正確的,所以一定要替換。而且這個(gè)jvmRoute一定要跟
workers.properties中的名稱(chēng)完全匹配,否則也不能實(shí)現(xiàn)session綁定.
5 測(cè)試
在跑tomcat1實(shí)例的機(jī)器的 webapps/ROOT 目錄生成如下內(nèi)容的index.jsp文件:
<html>
<body bgcolor=red>
<center>
<h1>Tomcat 1</h1>
</body>
</html>
同理,在跑tomcat2實(shí)例的機(jī)器的 webapps/ROOT 目錄生成如下內(nèi)容的index.jsp文件:
<html>
<body bgcolor=blue>
<center>
<h1>Tomcat 2</h1>
</body>
</html>
啟動(dòng)Tomcat1, Tomcat2 和Apache服務(wù)
首先驗(yàn)證Apache服務(wù)器的靜態(tài)頁(yè)面是否正常,訪問(wèn):http://hostname/.
驗(yàn)證tomcat和apache配置提供負(fù)載均衡,用不同的終端訪問(wèn):http://hostname/index.jsp
如果你看到紅色的頁(yè)面,表示為tomcat1 服務(wù)器返回的,
如果你看到蘭色的頁(yè)面,表示為tomcat2 服務(wù)器返回的。這里注意的是在linux上面的apache輪詢(xún)一般要返回10次tomcat1的服務(wù)后才會(huì)返回tomcat2的服務(wù),并且以后的訪問(wèn)是沒(méi)有規(guī)律的,在window2000環(huán)境下則是交替的返回tomcat1和tomcat2 的服務(wù)。
現(xiàn)在再測(cè)試下會(huì)話綁定功能,當(dāng)你在同一臺(tái)客戶端里重載以上(刷新頁(yè)面)訪問(wèn)的index.jsp頁(yè)面時(shí),確信永遠(yuǎn)返回同一種顏色,即總是從同一臺(tái)tomcat機(jī)器返回頁(yè)面。
JK module 的worker.properties配置的詳細(xì)說(shuō)明參看
http://tomcat.apache.org/connectors-doc/config/workers.html
JK module 的Apache配置的詳細(xì)說(shuō)明
http://tomcat.apache.org/connectors-doc/config/apache.html
本測(cè)試使用的軟體下載地址:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/
http://archive.apache.org/dist/httpd/binaries/win32/
posted on 2009-11-26 15:26
Ke 閱讀(488)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
tomcat