<1>軟硬件環(huán)境
Apache Http Server 2.2.4
Tomcat 5.028
jdk1.6
請(qǐng)自行下載jk_module.so,但注意必須與apache http server的版本對(duì)應(yīng)。
硬件我手頭有一臺(tái)IBM服務(wù)器,有三臺(tái)刀片機(jī)可用,IP分別是
S1:192.168.70.101
S2:192.168.70.102
S3:192.168.70.103
當(dāng)然這三臺(tái)機(jī)器您完全可以用三個(gè)一般的臺(tái)式機(jī)來(lái)代替.
我們的計(jì)劃是
用S1來(lái)做應(yīng)用服務(wù)器,用S2來(lái)做負(fù)載均衡,用S3來(lái)做數(shù)據(jù)庫(kù)服務(wù)器.
<2>在S1,S2下安裝jdk1.6
例如我安裝在c:\jdk1.6下
添加環(huán)境變量:
JAVA_HOME=C:\jdk1.6
CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
在PATH前面加:
PATH=%JAVA_HOME%\bin;
<3>在S1下安裝apache,沒(méi)有什么值得注意的地方,一路按next就可以了
我安裝在D:\Apache2.2
<4>在S1,S2下安裝tomcat 5.028
也是一路按next就可以了,我安裝在d:\tomcat5.0
以上對(duì)于一個(gè)java開發(fā)人員來(lái)說(shuō)應(yīng)該都不是問(wèn)題,接下來(lái)就是重頭戲了!
<5>配置
5.1 把下載的mod_jk-1.2.26-httpd-2.2.4.so拷貝到S1機(jī)器的D:\Apache2.2\modules目錄下,并改名為mod_jk.so
5.2 打開S1機(jī)器的D:\Apache2.2\conf\http.conf文件,在一堆LoadModule的最后加上這么一行
LoadModule jk_module modules/mod_jk.so
5.3 在D:\Apache2.2\conf\http.conf的最后加上對(duì)jk_module的配置
#與tomcat關(guān)聯(lián)
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
</IfModule>
<IfModule dir_module>
DirectoryIndex index.html,index.jsp,index.htm
</IfModule>
#結(jié)束與tomcat關(guān)聯(lián)
#添加虛擬主機(jī),注意S1上apache網(wǎng)頁(yè)文件目錄和tomcat網(wǎng)頁(yè)文件目錄要指向同一個(gè)目錄,否則靜態(tài)頁(yè)面會(huì)無(wú)法訪問(wèn)
<VirtualHost *:80>
ServerName www.map512.cn
DocumentRoot D:/Tomcat5.0/webapps
ServerAdmin support.szmap@gmail.com
JkMountFile conf/uriworkermap.properties
</VirtualHost>
#給虛擬主機(jī)目錄付權(quán)限
<Directory D:/Tomcat5.0/webapps>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#默認(rèn)訪問(wèn)
<IfModule dir_module>
DirectoryIndex index.html,index.jsp
</IfModule>
5.4 在D:\Apache2.2\conf\http.conf目錄下新建一個(gè)文件workers.properties,并添加以下內(nèi)容
#
# workers.properties
#
# list the workers by name
worker.list=SZMAP, status
# localhost server 1
# ------------------------
worker.s1.port=8009
worker.s1.host=192.168.70.101
worker.s1.type=ajp13
# localhost server 2
# ------------------------
worker.s2.port=8009
worker.s2.host=192.168.70.102
worker.s2.type=ajp13
# worker.s2.stopped=1
worker.SZMAP.type=lb
worker.retries=3
worker.SZMAP.balance_workers=s1, s2
worker.SZMAP.sticky_session=1
worker.status.type=status
說(shuō)明:這個(gè)文件配置了兩個(gè)worker,一個(gè)是SZMAP即我們的應(yīng)用服務(wù),這個(gè)應(yīng)用服務(wù)type是lb即負(fù)載均衡,并由s1和s2兩個(gè)balanced_workers來(lái)執(zhí)行,這里你可以添加無(wú)限多個(gè)服務(wù)器來(lái)實(shí)現(xiàn)負(fù)載(當(dāng)然,前提是您有足夠的RMB),一個(gè)是status是用來(lái)查看負(fù)載均衡狀態(tài)的,我們后面將會(huì)用到.
5.6 在D:\Apache2.2\conf\http.conf目錄下新建一個(gè)文件uriworkermap.properties,并添加以下內(nèi)容
/*=SZMAP
/jkstatus=status #設(shè)置除以下類型的文件外,都由tomcat提供服務(wù)(也就是說(shuō)下面列出的格式都有apache提供服務(wù))
!/*.gif=SZMAP
!/*.jpg=SZMAP
!/*.png=SZMAP
!/*.css=SZMAP
!/*.js=SZMAP
!/*.html=SZMAP
說(shuō)明:這個(gè)配置的意思是,所有的請(qǐng)求都轉(zhuǎn)到SZMAP這個(gè)worker(即上面配置的s1,s2這兩個(gè)balanced_workers下的tomcat服務(wù))去執(zhí)行,除了*.gif,*.html等靜態(tài)元素和/jkstatus,/jkstatus由status這個(gè)worker執(zhí)行.
5.7 Tomcat的配置
打開S1機(jī)器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成
<Engine defaultHost="localhost" name="Catalina" jvmRoute="s1">
<Host appBase="webapps" name="localhost"> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled"/> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/> </Cluster> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine>
<Engine defaultHost="localhost" name="Catalina" jvmRoute="s2">
<Host appBase="webapps" name="localhost"> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled"/> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/> </Cluster> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine>
到此,我們的配置已經(jīng)完成.
<6>查看結(jié)果
啟動(dòng)S1和S2下的tomcat服務(wù),然后啟動(dòng)S1下的apache服務(wù).
打開流覽器,輸入地址http://192.168.70.101/jkstatus,如果能看到以下界面,那么,恭喜您,您該感謝我了!呵呵!
JK Status Manager for 192.168.70.101:80
Server Version: | Apache/2.2.4 (Win32) mod_jk/1.2.26 |
JK Version: | mod_jk/1.2.26 |
Listing Load Balancing Worker (1 Worker) [Hide]
[S|E|R] Worker Status for SZMAP
Type | Sticky Sessions | Force Sticky Sessions | Retries | LB Method | Locking | Recover Wait Time | Max Reply Timeouts |
---|---|---|---|---|---|---|---|
lb | True | False | 2 | Request | Optimistic | 60 | 0 |
Good | Degraded | Bad/Stopped | Busy | Max Busy | Next Maintenance |
---|---|---|---|---|---|
2 | 0 | 0 | 0 | 6 | 32/94 |
Balancer Members [Hide]
Name | Type | Host | Addr | Act | State | D | F | M | V | Acc | Err | CE | RE | Wr | Rd | Busy | Max | Route | RR | Cd | Rs | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[E|R] | s1 | ajp13 | 192.168.70.101:8009 | 192.168.70.101:8009 | ACT | OK/IDLE | 0 | 1 | 1 | 0 | 1821 | 0 | 0 | 0 | 1.3M | 2.0M | 0 | 5 | s1 | 0/0 | ||
[E|R] | s2 | ajp13 | 192.168.70.102:8009 | 192.168.70.102:8009 | ACT | OK/IDLE | 0 | 1 | 1 | 0 | 1821 | 0 | 0 | 0 | 1.3M | 2.0M | 0 | 4 | s2 | 0/0 |
Edit one attribute for all members: [Activation |LB Factor |Route |Redirect Route |Cluster Domain |Distance ]
參考:
proxy方式:http://blog.chinaunix.net/u/22176/showart_1002535.html
liunx下的配置:http://seven.blog.51cto.com/120537/57930