=w=
tomcat集群搭建
上一篇 /
下一篇 2009-11-19 11:56:57
/ 个人分类:tomcat
1.首先安装Apache,启动Apache后打开浏览器访问http://localhost验证安装是否成功,打开Apache\conf目录下的httpd.conf文件,可以修改端口(默认为80)
2.下载mod-jk(我用的是mod_jk-1.2.26-httpd-2.2.4.so)将文件拷贝到Apache\modules目录下,在httpd.conf文件的末尾增加:
# 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
# Static files in the examples webapp are served by apache
Alias / /webapps/
# Declare the module for
#AddModule mod_jk.c
# mod_jk的配置文件
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"
# 由loadbalancer来处理请求
JkMount /* loadbalancer
3. 在Apache\conf目录中新建mod-jk配置文件workers.properties内容:
ps=\ #指定分割符
worker.list=worker1,worker2,loadbalancer
worker.worker1.port=8009
worker.worker1.host=127.0.0.1
worker.worker1.type=ajp13
worker.worker1.lbfactor=100
worker.worker2.port=8209
worker.worker2.host=127.0.0.1
worker.worker2.type=ajp13
worker.worker2.lbfactor=100
worker.loadbalancer.type=lb #负载均衡模式
worker.loadbalancer.balanced_workers=worker1,worker2 #由loadbalancer管理两个tomcat服务
4.修改两个tomcat的配置文件
如果两个tomcat安装在不同的机器上则某些地方不必修改,这里以安装在同一个机器上的两个tomcat负载均衡为例。
编辑tomcat/conf目录下的server.xml文件,分别修改两个配置文件:
1> <Server port="8005" shutdown="SHUTDOWN"> 将端口号区别开
2> <Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> 将port号区别开
3> <Connector port="8209" protocol="AJP/1.3" redirectPort="8443" /> 将port号区别开
4> <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="worker2">
<!--<Engine name="Catalina" defaultHost="localhost">--> 将support load-balancing via AJP打开,修改jvmRoute分别等于
workers.properties里面的两个worker
5.开启Session复制
在server.xml文件中找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> 打开注释
增加:
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5001"
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
注意多个Tomcat配置中,port="5001"端口必须是不重复的,之后只需要在工程的web.xml中制定集群方式就可以了
修改完成后启动tomcat,看到类似信息:
Starting Coyote HTTP/1.1 on http-8090
2008-8-6 13:52:59 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8209
2008-8-6 13:52:59 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47 config=null
说明tomcat启动成功。此时启动apache,查看Apache\logs中的日志文件,如果没有错误说明环境搭建完毕
压缩css html
修改httpd.conf
打开2个注释(deflate_module,headers_module)
添加
DeflateCompressionLevel 9
<Location />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript. text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</Location>
收藏
举报
TAG: