`
luming711115
  • 浏览: 10221 次
文章分类
社区版块
存档分类
最新评论

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(失败转移)功能。

附件是我摸索整理的整合文档,现在共享出来希望有需要的人可以少走些弯路,本文档不涉及调优方面的内容。文档包含单服务器多个站点配置部分和负载均衡集群配置内容。文档中将一些重要的关键点都进行了红色标注,大家在实践过程中稍加留意红色部分内容。
分享到:
评论
23 楼 xt_yangjie 2012-10-25  
按楼主的方法来、我郁闷了一下午。
extension_fix::jk_uri_worker_map.c (564): Could not find worker with name 'admin' in uri map post processing.

老是给我报这个错误、不知你们配的时候有木有遇到这个情况(win7 64+apache2.2+tomcat6),
后来我在worker.properies文件里面把tomcat和JDK的引用给加上就可以了。
workers.tomcat_home=E:/Program/apache-tomcat-admin
workers.java_home=E:/Program/jdk1.6.0_03
22 楼 mojunbin 2012-08-07  
支持,呵呵。
21 楼 cn-done 2009-06-04  
sech 写道
不知道楼主是怎么启动双tomcat的?
直接启动startup.bat吗?这样如果在服务器应用的话,是不是不大好?
我尝试将tomcat.exe添加成服务,但修改tomcat.exe的配置文件,总是不成功,可能tomcat.exe是共享一个配置文件.
有什么好的方法吗?



首先要配置 java_home
然后在tomcat bin目录下 使用DOS命令:service install  [你的服务别名]
20 楼 pillarlei 2009-04-28  
leirdal 写道
sech 写道
不知道楼主是怎么启动双tomcat的?
直接启动startup.bat吗?这样如果在服务器应用的话,是不是不大好?
我尝试将tomcat.exe添加成服务,但修改tomcat.exe的配置文件,总是不成功,可能tomcat.exe是共享一个配置文件.
有什么好的方法吗?


修改 Tomcat_home/bin 里面的 相關 .bat文件中關于classpath 的語句,這樣就可以讓多個tomcat不使用一個jvm,達到多啟動。不一定最好,但是可以實現。
曾經在服務器上win2003上開了,2個tomcat用到jdk1.4 1.5兩個。




如果使用同一个jvm会存在什么问题呢?

19 楼 pillarlei 2009-04-28  
luming711115 写道
目前网上有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(失败转移)功能。

附件是我摸索整理的整合文档,现在共享出来希望有需要的人可以少走些弯路,本文档不涉及调优方面的内容。文档包含单服务器多个站点配置部分和负载均衡集群配置内容。文档中将一些重要的关键点都进行了红色标注,大家在实践过程中稍加留意红色部分内容。



最近我们也配置了负载均衡和tomcat集群
我采用的是window2003 apache2.2 tomcat6.018
负载均衡已经配置成功了。
但是配置tomcat集群的时候,总是存在
"Unable to send back reply in RpcChannel."
的错误。session不能正确复制。
Google了一下,并没有找到合适的解决方案。
不知道楼主有没有遇到类似的情况,又是怎么解决的呢?

附件:两个tomcat的对应的配置文件
18 楼 y_yqing 2009-02-13  
请问,我想在Apache上配置多域名,一个是PHP的,一个是JAVA的,这时我怎样配置才能只转发JAVA的域名到Tomcat上,而PHP的直接由Apache处理?
17 楼 zouzou 2009-02-10  
请问楼主,我在windows环境下,配置apache mod_cache时,当时是按]apache官方网站上进行的,启动没有出现异常,error.log日志里面好象没有写进去,请问啥原因?


16 楼 leirdal 2008-12-18  
sech 写道
不知道楼主是怎么启动双tomcat的?
直接启动startup.bat吗?这样如果在服务器应用的话,是不是不大好?
我尝试将tomcat.exe添加成服务,但修改tomcat.exe的配置文件,总是不成功,可能tomcat.exe是共享一个配置文件.
有什么好的方法吗?


修改 Tomcat_home/bin 里面的 相關 .bat文件中關于classpath 的語句,這樣就可以讓多個tomcat不使用一個jvm,達到多啟動。不一定最好,但是可以實現。
曾經在服務器上win2003上開了,2個tomcat用到jdk1.4 1.5兩個。
15 楼 水雨田 2008-12-18  
谢谢楼主!!!!!
14 楼 KimHo 2008-12-14  
感谢楼主分享的精神,收下了
13 楼 hyl1234 2008-12-14  
单服务器配置我试了好多次,总是不对,先收下,回去再参照着试试
12 楼 sech 2008-11-11  
不知道楼主是怎么启动双tomcat的?
直接启动startup.bat吗?这样如果在服务器应用的话,是不是不大好?
我尝试将tomcat.exe添加成服务,但修改tomcat.exe的配置文件,总是不成功,可能tomcat.exe是共享一个配置文件.
有什么好的方法吗?
11 楼 fantasycs 2008-10-24  
多谢楼主了!! 你让我清楚了很多细节上东西。
10 楼 z95001188 2008-07-31  
我第一次部署集群.怎么发现两个tomcat只能启动一个.另外一个启动报错.,求解!完全按照文档上配置
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

请问楼主我这是啥问题啊?
8 楼 Rossalee 2008-06-17  
顶你的贴,这一段时间我也在为这个事情苦恼ing……
7 楼 luming711115 2008-06-10  
zhongli 写道
感谢lz,在你的基础上偶今天配置成功了单服务器多应用和多服务器的负载均衡,但当一个服务器关了,客户端反映需要重新登陆,说明session没有复制,不知道这个怎么配置

可能是你没有配集群,要实现failover功能必须要配置集群的。我在tomcat两个节点集群时,并发超过300会偶尔发生session同步异常。所以我建议只实现负载均衡,不要做tomcat集群。
6 楼 luming711115 2008-06-10  
zhongli 写道
文档中的配置确一个worker.lbcontroller.sticky_session=1。
Web.xml配置文件加上<distributable/>这个句很重要。

这个会话保持配置默认是为true的,所以不需要配置!
5 楼 zhongli 2008-06-10  
文档中的配置确一个worker.lbcontroller.sticky_session=1。
Web.xml配置文件加上<distributable/>这个句很重要。
4 楼 zhongli 2008-06-06  
感谢lz,在你的基础上偶今天配置成功了单服务器多应用和多服务器的负载均衡,但当一个服务器关了,客户端反映需要重新登陆,说明session没有复制,不知道这个怎么配置

相关推荐

Global site tag (gtag.js) - Google Analytics