网上关于Tomcat的集群和负载平衡的东东实在太多,不过有些可以成功,有些不成,本人只是测试的基于JK的connector,其他应该类似吧,同时也是作为学习Tomcat的Cluster的一个总结吧。
本人测试用到的软件:
[list]
[*][url=http://httpd.apache.org/]Apathe Http2.2[/url]
[*][url=http://tomcat.apache.org/download-55.cgi]Tomcat5.5[/url]
[*][url=http://tomcat.apache.org/connectors-doc/index.html]JK[/url]
[/list]
首先来配置Tomcat的Cluster,我是用两台主机来测试Tomcat的Session的Cluster的,其实很简单,简单修改一下conf下的server.xml即可
[list=1]
[*]
[*]将Host标签下的Cluster标签的注释去掉,因为是在两台主机上测试,因此什么都不需要改(不过要注意两天主机应该在同一个局域网中,因为不知道你的网络中是否支持多播路由,因此在同一个LAN最保险)
[/list]
至此Tomcat要配置的已经完成,简单吧 :D 不过要想真正深入了解Tomcat的Cluster还是需要去官方多多其文档。
接下来是配置JK和Apache的http了,接下来我们就一步一步来配置他们:
[list=1]
[*]下载[url=http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/]JK[/url]相应的二进制文件(我是用的window版的[url=http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.2.4.so]1.2.26[/url])
[*]将相应的JK文件解压缩,并且将其so文件放到apache的modules目录下边,并且重新命名为mod_jk.so
[*]http.conf的配置,很简单增加如下代码即可
[*]将JK用到的properties放到apache的conf下边,我已经打包的[url=http://agile-boy.iteye.com/upload/attachment/12542/7d14982d-a981-3bc2-945c-67dbdaf712a9.rar]properties.conf[/url]文件
[/list]
至此配置相关的东东基本完成,将apache,tomcat等都启动完毕,如果没有什么意外的话,输入http://host:port/cluster应该可以看到结果的,而且还可以通过http://host:port/jkstatus来监控和配置JK :)
不过为了方便查看,最好将cluster.war的index.jsp的title自己调整一下,以方便区分。
另:我的测试环境是将apache和tomcat1放在同一主机上,另一台单独运行tomcat2
我用到的相关文档:
[list]
[*][url=http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html]cluster-howto[/url]
[*][url=http://tomcat.apache.org/connectors-doc/index.html]Tomcat Connector[/url]其中[url=http://tomcat.apache.org/connectors-doc/reference/status.html]Status Worker[/url]对于描述jkstatus,很有益处。
[/list]
最后对JE发个小牢骚,虽然有自动保存的功能,可是我辛苦写出的文档,只恢复了一部分 :(
本人测试用到的软件:
[list]
[*][url=http://httpd.apache.org/]Apathe Http2.2[/url]
[*][url=http://tomcat.apache.org/download-55.cgi]Tomcat5.5[/url]
[*][url=http://tomcat.apache.org/connectors-doc/index.html]JK[/url]
[/list]
首先来配置Tomcat的Cluster,我是用两台主机来测试Tomcat的Session的Cluster的,其实很简单,简单修改一下conf下的server.xml即可
[list=1]
[*]
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
将以上代码的Engine注释放开,将jvm1修改成tomcat1(是为了和JK的配置相一致),同时将
<!-- Define the top level container in our container hierarchy -->,当然了也要将另一台主机上的jvmRoute修改为tomcat2。
<Engine name="Catalina" defaultHost="localhost">
中的Engine注释
[*]将Host标签下的Cluster标签的注释去掉,因为是在两台主机上测试,因此什么都不需要改(不过要注意两天主机应该在同一个局域网中,因为不知道你的网络中是否支持多播路由,因此在同一个LAN最保险)
[/list]
至此Tomcat要配置的已经完成,简单吧 :D 不过要想真正深入了解Tomcat的Cluster还是需要去官方多多其文档。
接下来是配置JK和Apache的http了,接下来我们就一步一步来配置他们:
[list=1]
[*]下载[url=http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/]JK[/url]相应的二进制文件(我是用的window版的[url=http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.2.4.so]1.2.26[/url])
[*]将相应的JK文件解压缩,并且将其so文件放到apache的modules目录下边,并且重新命名为mod_jk.so
[*]http.conf的配置,很简单增加如下代码即可
LoadModule jk_module modules/mod_jk.so
# Path to workers.properties
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
# Path to jk logs
JkLogFile logs/mod_jk.log
# Jk log level [debug/error/info]
JkLogLevel info
# Jk log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions for forwarding
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
[*]将JK用到的properties放到apache的conf下边,我已经打包的[url=http://agile-boy.iteye.com/upload/attachment/12542/7d14982d-a981-3bc2-945c-67dbdaf712a9.rar]properties.conf[/url]文件
[/list]
至此配置相关的东东基本完成,将apache,tomcat等都启动完毕,如果没有什么意外的话,输入http://host:port/cluster应该可以看到结果的,而且还可以通过http://host:port/jkstatus来监控和配置JK :)
不过为了方便查看,最好将cluster.war的index.jsp的title自己调整一下,以方便区分。
另:我的测试环境是将apache和tomcat1放在同一主机上,另一台单独运行tomcat2
我用到的相关文档:
[list]
[*][url=http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html]cluster-howto[/url]
[*][url=http://tomcat.apache.org/connectors-doc/index.html]Tomcat Connector[/url]其中[url=http://tomcat.apache.org/connectors-doc/reference/status.html]Status Worker[/url]对于描述jkstatus,很有益处。
[/list]
最后对JE发个小牢骚,虽然有自动保存的功能,可是我辛苦写出的文档,只恢复了一部分 :(