日期:2014-05-16  浏览次数:21056 次

Apache+Tomcat集成教程;单服务器多站点,多服务器负载均衡集群!
目前网上有N多关于Apache+Tomcat集成的文章,其实就是来自一两篇文章拷贝来拷贝去。
最近我需要在单台服务器上部署两个站点的集成方案,从网上找了N久也没有找到解决办法(或许是我的方法不对 呵呵)。javaeye论坛上和CSDN论坛上有部分人提出单服务器多站点的场合Apache+tomcat如何集成问题,但大部分都没有正确的答案。经过我两天的摸索,Apache+tomcat集成,负载均衡,集群主要有几个关键点;

1、apache httpd.conf加载jk_module并且根据目录和文件名称将请求转发给tomcat。

2、负责均衡的时候将请求只转发给负载分发控制器,worker.list只要列出分发配置器就可以了,这点网上有很多资料没有说明(肯定是没有认真阅读官方文档所致)。

3、tomcat server.xml配置文件中的Engine节点要注意配置jvmRoute属性,并且该属性值一定要和worker.properties中tomcat的名称保持一致,而且不能重复。如果不一致,将不能使用session_stricky功能。CSDN上有人发帖请教问题,但没有得到答案。

4、集群情况下注意多个tomcat的server.xml配置文件的各种端口不能重复,主要有Server节点、Connector节点、tcpListernPort节点。

5、集群情况下一定要注意server.xml文件Host节点中将Cluster注释去掉,且要修改Receiver端口。

6、负载均衡并不一定需要集群(但需要session_stricky会话保持),除非你需要failover(失败转移)功能。

附件是我摸索整理的整合文档,现在共享出来希望有需要的人可以少走些弯路,本文档不涉及调优方面的内容。文档包含单服务器多个站点配置部分和负载均衡集群配置内容。文档中将一些重要的关键点都进行了红色标注,大家在实践过程中稍加留意红色部分内容。
3 楼 hazard 2008-06-05  
正在找这方面的资料,谢谢了~~
4 楼 zhongli 2008-06-06  
感谢lz,在你的基础上偶今天配置成功了单服务器多应用和多服务器的负载均衡,但当一个服务器关了,客户端反映需要重新登陆,说明session没有复制,不知道这个怎么配置
5 楼 zhongli 2008-06-10  
文档中的配置确一个worker.lbcontroller.sticky_session=1。
Web.xml配置文件加上<distributable/>这个句很重要。
6 楼 luming711115 2008-06-10  
zhongli 写道
文档中的配置确一个worker.lbcontroller.sticky_session=1。
Web.xml配置文件加上<distributable/>这个句很重要。

这个会话保持配置默认是为true的,所以不需要配置!
7 楼 luming711115 2008-06-10  
zhongli 写道
感谢lz,在你的基础上偶今天配置成功了单服务器多应用和多服务器的负载均衡,但当一个服务器关了,客户端反映需要重新登陆,说明session没有复制,不知道这个怎么配置

可能是你没有配集群,要实现failover功能必须要配置集群的。我在tomcat两个节点集群时,并发超过300会偶尔发生session同步异常。所以我建议只实现负载均衡,不要做tomcat集群。
8 楼 Rossalee 2008-06-17  
顶你的贴,这一段时间我也在为这个事情苦恼ing……
9 楼 saturn123 2008-07-17  
我配置apache和2个tomact集群 在处理 .do请求出现问题,直接不出现界面
在我的应用已经加<distributable/>
我的mod_jk.conf如下
#加载mod_jk Module  
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.0.59.so
 
#指定 workers.properties文件路径  
JkWorkersFile conf/workers.properties  
 
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器  
JkMount /* controller

请问楼主我这是啥问题啊?
10 楼 z95001188 2008-07-31  
我第一次部署集群.怎么发现两个tomcat只能启动一个.另外一个启动报错.,求解!完全按照文档上配置
11 楼 fantasycs 2008-10-24  
多谢楼主了!! 你让我清楚了很多细节上东西。
12 楼 sech 2008-11-11  
不知道楼主是怎么启动双tomcat的?
直接启动startup.bat吗?这样如果在服务器应用的话,是不是不大好?
我尝试将tomcat.exe添加成服务,但修改tomcat.exe的配置文件,总是不成功,可能tomcat.exe是共享一个配置文件.
有什么好的方法吗?
13 楼 hyl1234 2008-12-14  
单服务器配置我试了好多次,总是不对,先收下,回去再参照着试试
14 楼 KimHo 2008-12-14