1. 安装apache
2. 安装多个tomcat
3. 安装mod_jk.so
4. 在apache配置文件httpd.conf中加入如下语句:
# tomcat
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
<Directory ~ "/META-INF/">
Order allow,deny
Deny from all
</Directory>
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "E:/Apache Group/Apache2/conf/workers.properties"
JkLogFile "E:/Apache Group/Apache2/logs/mod_jk.log"
JkLogLevel info
#JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* myloadbalancer
JkMount /*.* myloadbalancer
其中JkWorkersFile和JkLogFile改为对应的位置。
5. 在httpd.conf同目录下增加一个文件workers.properties,其内容如下:
worker.list=myloadbalancer
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=12009
worker.tomcat2.lbfactor=1
worker.myloadbalancer.type=lb
worker.myloadbalancer.balanced_workers=tomcat1,tomcat2
worker.status.type=status
注意:这里的worker.tomcat1.host和worker.tomcat1.port分别为多个tomcat的地址和内部链接端口。其中worker.tomcat1.port为AJP链接端口,多个tomcat之间都应该不同
6. 设置两个tomcat的server.xml:
将所有的端口都改成不同的端口。其中AJP的要改为前面的在workers.properties设置的对应的端口。同时添加如下代码:
<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;.*/.htm;.*/.html;.*/.txt;"/>
</Cluster>
这里面的tcpListenPort 都应该是不同的。
7. 设置每个应用的web.xml:
在其中加上:<distributable/>
8. 另外:
程序实现的时候,每个放入session的bean都必须实现序列化接口。
至此配置完成。
2. 安装多个tomcat
3. 安装mod_jk.so
4. 在apache配置文件httpd.conf中加入如下语句:
# tomcat
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
<Directory ~ "/META-INF/">
Order allow,deny
Deny from all
</Directory>
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "E:/Apache Group/Apache2/conf/workers.properties"
JkLogFile "E:/Apache Group/Apache2/logs/mod_jk.log"
JkLogLevel info
#JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* myloadbalancer
JkMount /*.* myloadbalancer
其中JkWorkersFile和JkLogFile改为对应的位置。
5. 在httpd.conf同目录下增加一个文件workers.properties,其内容如下:
worker.list=myloadbalancer
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=12009
worker.tomcat2.lbfactor=1
worker.myloadbalancer.type=lb
worker.myloadbalancer.balanced_workers=tomcat1,tomcat2
worker.status.type=status
注意:这里的worker.tomcat1.host和worker.tomcat1.port分别为多个tomcat的地址和内部链接端口。其中worker.tomcat1.port为AJP链接端口,多个tomcat之间都应该不同
6. 设置两个tomcat的server.xml:
将所有的端口都改成不同的端口。其中AJP的要改为前面的在workers.properties设置的对应的端口。同时添加如下代码:
<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;.*/.htm;.*/.html;.*/.txt;"/>
</Cluster>
这里面的tcpListenPort 都应该是不同的。
7. 设置每个应用的web.xml:
在其中加上:<distributable/>
8. 另外:
程序实现的时候,每个放入session的bean都必须实现序列化接口。
至此配置完成。