6、Apache与多个Tomcat服务器集成时的负载平衡
在实际应用中,如果网站的访问量非常大,为了提高访问速度,可以将多个Tomcat服务器与Apache集成,让它们共同分担运行Servlet/JSP 组件的任务。 JK插件的loadbalancer(负载平衡器)负责根据在workers.properties文件中预先配置的lbfactor(负载平衡因数)为 这些Tomcat服务器分配工作负荷,实现负载平衡。
假定Apache和两个Tomcat服务器集成,一个Tomcat服务器和Apache运行在同一台机器上,使用的JK端口为8009,还有一个 Tomcat服务器运行在另一台机器上,主机名为anotherhost,使用的JK端口为8009。以下是把Apache和这两个Tomcat服务器集 成的步骤。
(1)把mod_jk_2.0.46.dll拷贝到/lib目录下。
(2)在/conf目录下创建如下的workers.properties文件(注意粗体部分的内容):
ps=\ #指定文件路径分割符 worker.list=worker1, worker2,loadbalancer worker.worker1.port=8009 #工作端口,若没占用则不用修改 worker.worker1.host=localhost #Tomcat服务器的地址 worker.worker1.type=ajp13 #类型 worker.worker1.lbfactor=100 #负载平衡因数 worker.worker2.port=8009 #工作端口,若没占用则不用修改 worker.worker2.host=anotherhost #Tomcat服务器的地址 worker.worker2.type=ajp13 #类型 worker.worker2.lbfactor=100 #负载平衡因数 worker.loadbalancer.type=lb worker.loadbalancer. balanced_workers=worker1, worker2 |
以上文件创建了两个worker:worker1和worker2分别代表两个Tomcat服务器,它们由worker.loadbalancer来分配工作负荷。
(3)修改/conf/httpd.conf文件,在文件末尾加入如下内容:
# Using mod_jk2.dll to redirect dynamic calls to Tomcat LoadModule jk_module modules\mod_jk_2.0.46.dll JkWorkersFile "conf\workers.properties" JkLogFile "logs\mod_jk2.log" JkLogLevel debug JkMount /*.jsp loadbalancer JkMount /helloapp/* loadbalancer |
当客户请求"/*.jsp"或"/helloapp/*"形式的URL,该请求都由loadbalancer来负责转发,它根据在workers.properties文件中为worker1和worker2分配的lbfactor属性,来决定如何调度它们。
只有在使用了loadbalancer的情况下,workers.properties文件中worker的lbfactor属性才有意义,lbfactor取值越大,表示分配给Tomcat服务器的工作负荷越大。
(4)修改两个Tomcat服务器的JK端口,确保它们和workers.properties文件中的配置对应。此外,在使用了loadbalancer后,要求worker的名字和Tomcat的server.xml文件中的元素的jvmRoute属性一致。
所以应该分别修改两个Tomcat的sever.xml文件,把它们的元素的jvmRoute属性分别设为worker1和worker2。以下是修改后的两个Tomcat服务器的元素:
Tomcat服务器1:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker1"> |
Tomcat服务器2:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker2"> |
(5)在完成以上步骤后,分别启动两个Tomcat服务器和Apache服务器,然后访问 http://localhost/index.jsp,会出现Tomcat服务器的默认主页。由于此时由loadbalancer来调度Tomcat服 务器,因此不能断定到底访问的是哪个Tomcat服务器的index.jsp,这对于Web客户来说是透明的。
如果在进行以上实验时,两个Tomcat服务器都在同一台机器上运行,应该确保它们没有使用相同的端口。在Tomcat的默认的server.xml中,一共配置了以下3个端口:
<Server port="8005" shutdown="SHUTDOWN" debug="0"> <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --> <Connector port="8080" /> <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" /> |
如果两个Tomcat服务器都在同一台机器上运行,则至少应该对其中一个Tomcat服务器的以上3个端口号都进行修改。
此外,如果把Tomcat和其他HTTP服务器集成,Tomcat主要负责处理HTTP 服务器转发过来的客户请求,通常不会直接接受HTTP请求。因此为了提高Tomcat的运行性能,可以关闭Tomcat的HTTP连接器,方法为在 server.xml中把Tomcat的HTTP Connector的配置注释掉。
相关推荐
**标题:“Tomcat与Apache服务器集成”** 在Web开发领域,Apache HTTP Server(简称Apache)和Tomcat都是广泛使用的服务器软件。Apache以其稳定性和灵活性著称,主要用于处理静态内容;而Tomcat则是一个轻量级的...
### Tomcat与Java Web开发技术详解 #### 一、Tomcat简介 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了对Servlet和JavaServer Pages (JSP)的支持,可以作为独立的应用服务器...
然而,有时我们可能需要将Tomcat与其他HTTP服务器集成,以获得更高的性能、安全性或者利用其他服务器的特定功能。这种集成可以是Apache HTTP Server与Tomcat的组合,也可以是Nginx与Tomcat的配合,或者其他HTTP...
通过阅读《Tomcat与Java Web开发技术详解》,读者不仅能掌握Tomcat服务器的深度使用技巧,还能系统地学习到Java Web开发的核心知识,为实际项目开发打下坚实基础。书中的实例和实践指导将帮助读者更好地理解和应用...
本文将详细阐述如何将Apache Tomcat(一个流行的Java Servlet容器)与Microsoft IIS(互联网信息服务)服务器集成,以及在这个过程中涉及的关键组件——isapi_redirect-1.2.14.dll插件的使用。 首先,我们要理解...
【标题】:“Tomcat与Java.Web开发技术详解”是一本深度探讨Tomcat服务器与Java Web应用开发的专业资料,旨在帮助开发者全面理解并掌握这两项关键技术。 【内容详解】: 1. **Tomcat介绍**:Tomcat是Apache软件基金...
主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...
《Tomcat与Java Web开发技术详解(第2版)》是一本深入探讨Java Web应用程序部署和运行环境的权威指南。本书主要围绕Apache Tomcat服务器展开,涵盖了从基础概念到高级特性的全方位讲解,旨在帮助读者掌握Java Web...
《Tomcat与Java.Web开发技术详解》是一本深入解析Tomcat服务器和Java Web开发的教程。本书旨在帮助读者全面理解如何使用Tomcat作为Java Web应用的运行环境,并掌握相关的开发和部署技巧。以下是对该主题的详细阐述:...
《Tomcat与Java Web开发技术详解》第二版是一本深入探讨如何使用Apache Tomcat服务器进行Java Web应用程序开发的专业书籍。作者孙卫琴以其丰富的教学和实践经验,为读者提供了全面而细致的技术指南。这本书的配套...
Tomcat服务器支持HTTP、HTTPS协议,并且可以与其他Java EE组件(如数据库连接池、EJB容器等)集成,构建更复杂的企业级应用。 二、Tomcat的结构与工作流程 Tomcat主要由以下几个核心组件构成: 1. CATALINA:这是...
在BlazeDS和Flex的集成中,Tomcat常被用作部署服务器,承载BlazeDS服务以及与之交互的Flex应用程序。 在J2EE模块整合中,BlazeDS通常作为中间件,负责在Flex客户端和Tomcat服务器之间建立连接。开发者可以在Tomcat...
《Tomcat与Java.Web开发技术详解》是由孙卫琴编著的一本专业书籍,主要针对Java Web开发初学者和进阶者,详细介绍了如何使用Tomcat服务器进行Web应用的开发和部署。这本书以其清晰易懂的特点,深受读者喜爱,特别...
【标题】"tomcat+apache 6.0集成打包"涉及的是在服务器环境中整合Apache HTTP Server与Apache Tomcat的常见技术实践。这个压缩包包含了Apache 2.2.8和Tomcat 6.0.16这两个特定版本,以及JK模块(即mod_jk)的2.0.55...
### Tomcat与Java Web开发技术详解 #### 一、Tomcat简介 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了Servlet和JSP规范,可以作为独立的Web服务器来运行Java Web应用程序。...
10. **与IDE集成**:许多集成开发环境(IDEs),如Eclipse、IntelliJ IDEA,都提供了与Tomcat的无缝集成,使得开发和调试Java Web应用更为便捷。 总结,Apache Tomcat 7.0作为一个高效、易用的Web服务器,为基于JSP...