`

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没有复制,不知道这个怎么配置

相关推荐

    apache-tomcat-9.0.44.tar.gz

    5. Cluster:支持集群部署,实现负载均衡和故障转移。 在实际应用中,Tomcat经常与Spring Boot、Hibernate等框架结合使用,构建高效的企业级Web应用。同时,由于其轻量级和易于管理的特性,Tomcat也常作为开发和...

    apache,tomcat,jk集群配置

    Apache的mod_jk模块是Apache与Tomcat集成的关键,它负责在Apache和Tomcat之间转发请求。JK模块提供了连接器(worker)的概念,每个连接器对应一个Tomcat实例,这样就可以将请求分散到多个Tomcat实例上,达到负载均衡...

    apache-tomcat-7.0.65

    9. **集群和负载均衡**:虽然Tomcat本身不提供内置的负载均衡功能,但可以通过结合其他工具(如Nginx、Apache HTTP Server的mod_proxy模块)实现多台Tomcat服务器的负载均衡。 10. **JNDI服务**:Java Naming and ...

    apache-tomcat-6.0.14.

    4. **Cluster**:如果需要在多台服务器上进行负载均衡或高可用性设置,Tomcat的集群功能就派上用场了。 5. **Connector**:Tomcat支持多种连接器,如HTTP/1.1、AJP(Apache JServ Protocol)等,用于与不同的Web...

    Tomcat与Java_Web开发技术详解3.pdf

    1. **集群部署**:通过集群部署可以实现负载均衡和高可用性。 2. **热部署**:支持在不重启服务器的情况下更新和部署Web应用。 3. **虚拟主机**:可以在同一台服务器上运行多个不同的Web站点。 综上所述,《Tomcat...

    Apache安装及jboss部署说明文档

    1. **安装mod_jk模块**:Apache的mod_jk模块是用于连接Apache和Tomcat/JBoss的负载均衡器。下载对应版本的mod_jk.so(Windows)或mod_jk.so(Linux/Unix),并将其加载到Apache配置中。 2. **配置mod_jk**:在...

    WEB服务器安装配置手册

    对于大型站点,可能还需要考虑负载均衡和集群技术,以提高可用性和应对高并发访问。 总结来说,"WEB服务器安装配置手册"将引导你了解和掌握Web服务器的基础知识,包括Apache的静态内容服务、Tomcat的Java应用支持...

    Apache中文手册

    通过mod_proxy模块,Apache可以实现负载均衡,将请求分发到多台后端服务器,以提升系统的可用性和可靠性。同时,Apache也可以参与到大型的Web服务集群中,与其他服务器协同工作。 十、MIME类型 Apache通过AddType...

    Linux系统下tomcat9.0.13

    以上是Linux环境下部署和管理Tomcat 9.0.13的基础知识,深入学习还包括JVM调优、集群配置、负载均衡以及与其他Java应用服务器的集成等内容。在实际操作中,根据具体需求进行配置和优化,以确保Tomcat能提供高效、...

    tomcat配置实例.rar

    10. **集群和负载均衡**:当需要高可用性和扩展性时,如何配置Tomcat集群和使用负载均衡器。 通过这些知识点的学习,开发者不仅能理解Tomcat的基本操作,还能对高级配置和优化有深入认识,从而更高效地管理和维护...

    isapi_redirect

    2. **负载均衡**:通过ISAPI_Redirect,可以实现对Java应用服务器集群的负载均衡,提高系统的可用性和可靠性。 3. **性能优化**:利用ISAPI_Redirect,IIS可以直接将特定类型的请求转发到Java应用服务器,减轻了IIS...

    《Jetty6_指南书》

    - **集群部署**: 如何设置Jetty集群以提高可用性和负载均衡。 #### 十三、性能优化 - **线程池配置**: 如何优化线程池配置以提高服务器性能。 - **内存大小**: 合理设置堆内存大小,避免OOM等问题。 - **共享库**: ...

    [CMS程序]OpenCms中文用户手册_opencmshandbook

    9. **性能优化**:手册可能会涉及缓存机制、负载均衡和集群配置,以提高网站的响应速度和并发处理能力。 10. **故障排查与日志分析**:学习如何查看和分析系统日志,定位并解决问题,确保OpenCms稳定运行。 通过...

    Java学习从入门到精通

    - **特点**: 功能强大,适用于大型企业级应用,支持高可用性、负载均衡等功能。 **3. IBM WebSphere** - **简介**: WebSphere 是 IBM 提供的一套企业级应用服务器解决方案。 - **特点**: 高度可定制化,支持广泛的...

    毕业设计系统公交查询系统

    另外,为了保证系统的高可用性和负载均衡,可以考虑使用Tomcat集群或者Nginx反向代理服务器。 最后,测试是任何软件开发不可或缺的部分。JUnit和Mockito等工具可以帮助开发者进行单元测试和集成测试,确保系统的...

Global site tag (gtag.js) - Google Analytics