<1>軟硬件環境
Apache Http Server 2.2.4
Tomcat 5.028
jdk1.6
請自行下載jk_module.so,但注意必須與apache http server的版本對應。
硬件我手頭有一臺IBM服務器,有三臺刀片機可用,IP分別是
S1:192.168.70.101
S2:192.168.70.102
S3:192.168.70.103
當然這三臺機器您完全可以用三個一般的臺式機來代替.
我們的計劃是
用S1來做應用服務器,用S2來做負載均衡,用S3來做數據庫服務器.
<2>在S1,S2下安裝jdk1.6
例如我安裝在c:\jdk1.6下
添加環境變量:
JAVA_HOME=C:\jdk1.6
CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
在PATH前面加:
PATH=%JAVA_HOME%\bin;
<3>在S1下安裝apache,沒有什么值得注意的地方,一路按next就可以了
我安裝在D:\Apache2.2
<4>在S1,S2下安裝tomcat 5.028
也是一路按next就可以了,我安裝在d:\tomcat5.0
以上對于一個java開發人員來說應該都不是問題,接下來就是重頭戲了!
<5>配置
5.1 把下載的mod_jk-1.2.26-httpd-2.2.4.so拷貝到S1機器的D:\Apache2.2\modules目錄下,并改名為mod_jk.so
5.2 打開S1機器的D:\Apache2.2\conf\http.conf文件,在一堆LoadModule的最后加上這么一行
LoadModule jk_module modules/mod_jk.so
5.3 在D:\Apache2.2\conf\http.conf的最后加上對jk_module的配置
#與tomcat關聯
<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>
#結束與tomcat關聯
#添加虛擬主機,注意S1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄,否則靜態頁面會無法訪問
<VirtualHost *:80>
ServerName www.map512.cn
DocumentRoot D:/Tomcat5.0/webapps
ServerAdmin support.szmap@gmail.com
JkMountFile conf/uriworkermap.properties
</VirtualHost>
#給虛擬主機目錄付權限
<Directory D:/Tomcat5.0/webapps>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#默認訪問
<IfModule dir_module>
DirectoryIndex index.html,index.jsp
</IfModule>
5.4 在D:\Apache2.2\conf\http.conf目錄下新建一個文件workers.properties,并添加以下內容
#
# 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
說明:這個文件配置了兩個worker,一個是SZMAP即我們的應用服務,這個應用服務type是lb即負載均衡,并由s1和s2兩個balanced_workers來執行,這里你可以添加無限多個服務器來實現負載(當然,前提是您有足夠的RMB),一個是status是用來查看負載均衡狀態的,我們后面將會用到.
5.6 在D:\Apache2.2\conf\http.conf目錄下新建一個文件uriworkermap.properties,并添加以下內容
/*=SZMAP
/jkstatus=status #設置除以下類型的文件外,都由tomcat提供服務(也就是說下面列出的格式都有apache提供服務)
!/*.gif=SZMAP
!/*.jpg=SZMAP
!/*.png=SZMAP
!/*.css=SZMAP
!/*.js=SZMAP
!/*.html=SZMAP
說明:這個配置的意思是,所有的請求都轉到SZMAP這個worker(即上面配置的s1,s2這兩個balanced_workers下的tomcat服務)去執行,除了*.gif,*.html等靜態元素和/jkstatus,/jkstatus由status這個worker執行.
5.7 Tomcat的配置
打開S1機器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>
打開S2機器D:\Tomcat5.0\conf\server.xml,找到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>
到此,我們的配置已經完成.
<6>查看結果
啟動S1和S2下的tomcat服務,然后啟動S1下的apache服務.
打開流覽器,輸入地址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 |
[Change Format:
XML |
Property |
Text] [
Read Only] [
S=Show only this worker,
E=Edit worker,
R=Reset worker state,
T=Try worker recovery]
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