在企业级应用中,采用Tomcat作为应用服务器的系统不在少数,但是Tomcat作为轻量级应用服务器,它的负载能力确实有限,在系统上线后不堪重负,这时候人们都会想起集群来,可惜以往的版本做起集群来,实在不方便得很。
Tomcat5.5在这方面作了很大的改进,我们首先可以实现Tomcat5.5的集群。
一、配置Tomcat
1、直接将下载的apache-tomcat-5.5.17.zip解压缩到一个驱动器根目录下,将目录名改为Tomcat5517_S1,作为集群的第一个Tomcat服务器。
2、删除Tomcat5517_S1\ webapps、Tomcat5517_S1\temp下的所有内容。
3、在Tomcat5517_S1\conf\Catalina\localhost下建立ROOT.xml文件(注意:一定要用ROOT.xml这个文件名)。添加内容:
<Context path="" docBase="发布路径" displayName="Tomcat_1"
debug="0" privileged="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
4、确认你的应用发布没有问题的情况下,运行Tomcat5517_S1\bin中的Startup.bat。
5、在浏览器中访问:http://localhost:8080,你的应用应该可以在此Tomcat中成功发布了。
这里要注意的是:
如果你的系统中使用了Taglib尤其是c.tld,请下载最新版本的jakarta-taglibs-standard-1.1.2.zip,从中取得standard.jar、jstl.jar和c.tld,放在相应的目录下,然后修改web.xml:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
其中所有的
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
要放在<jsp-config>元素中,像这样:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/c.tld</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
</jsp-config>
二、配置同一台机器中的Tomcat集群
1、将Tomcat5517_S1\ Catalina文件夹改名为Tomcat5517_S1\ Standalone,然后打开Tomcat5517_S1\conf\server.xml,修改几个关键的地方。
★ 远程关闭Tomcat的服务端口,原来是8005,改为10005。
★ 两个对外服务的Connector的端口:Http协议端口原来是8080,改为10001;AJP1.3协议端口原来是8009,改为10009。(这 里要注意的是在开始的调试阶段我们保持http协议端口的打开状态,用于浏览器直接与此Tomcat连接,等到调试成功后,所有的客户端只允许通过 apache访问,我们就要将提供Http协议的Connector关掉。)其中的redirectPort我都改成了10043。
★ 将原来的:<Engine name="Catalina" defaultHost="localhost">注释掉,打开它上面的:<Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat1">,并且将jvmRoute的值改为Tomcat1。
★ 打开Cluster元素的注释,并且将Receiver元素的监听端口tcpListenPort改为10011。
2、修改Web.xml,加上<distributable/>,如下:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<distributable/>
</web-app>
然后启动此Tomcat,可以看到有这样的提示信息:
2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.SimpleTcpCluster start
信息: Cluster is about to start
2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.ReplicationTransmitter start
信息: Start ClusterSender at cluster Standalone:type=Cluster,host=localhost with name Standalone:type=ClusterSender,host=localhost
2006-6-28 13:33:57 org.apache.catalina.cluster.mcast.McastService start
信息: Sleeping for 2000 milliseconds to establish cluster membership
2006-6-28 13:33:59 org.apache.catalina.cluster.mcast.McastService registerMBean
信息: membership mbean registered (Standalone:type=ClusterMembership,host=localhost)
2006-6-28 13:33:59 org.apache.catalina.cluster.deploy.FarmWarDeployer start
信息: Cluster FarmWarDeployer started.
2006-6-28 13:34:30 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-10001
2006-6-28 13:34:30 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:10009
2006-6-28 13:34:30 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/141 config=null
这表示Tomcat集群正常启动了。
3、复制Tomcat5517_S1文件夹,并更名为Tomcat5517_S2;然后修改Tomcat5517_S1\conf\server.xml,修改内容同上,要注意的是端口的修改:
★ 远程关闭Tomcat的服务端口,原来是8005,改为20005。
★ 两个对外服务的Connector的端口:Http协议端口原来是8080,改为20001;AJP1.3协议端口原来是8009,改为20009。其中的redirectPort我都改成了20043。
★ 将原来的:<Engine name="Catalina" defaultHost="localhost">注释掉,打开它上面的:<Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat2">,并且将jvmRoute的值改为Tomcat2。
★ 打开Cluster元素的注释,并且将Receiver元素的监听端口tcpListenPort改为20011。
启动Tomcat2,可以看到有如下提示:
在Tomcat1中:
2006-6-28 14:25:46 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:20011,catalina,192.168.1.192,20011, alive=40]
在Tomcat2中:
2006-6-28 14:25:44 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:10011,catalina,192.168.1.192,10011, alive=3105085]
这表示两个Tomcat已经建立了集群,并保持Session同步了
三、配置Apache
Apache2.2提供了最新的mod_proxy_balancer模块,这是我们这次实践过程中完成负载均衡的利器。安装完Apache之后,直接打开conf\httpd.conf文件:
★ 打开必要的模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
★ 在httpd.conf的最后加上:
ProxyRequests Off
ProxyPass / balancer://myCluster/
<Proxy balancer://myCluster/>
BalancerMember ajp://localhost:10009 route=Tomcat1
BalancerMember ajp://localhost:20009 route=Tomcat2
</Proxy>
然后启动apache,开始测试你的应用在集群环境下的表现吧!
分享到:
相关推荐
Apache Tomcat集群和负载均衡是提高Web应用程序性能和可用性的关键策略。通过在Windows平台上配置Apache HTTP Server与多个Tomcat实例协同工作,可以有效地分散用户请求,避免单一服务器过载,确保服务的连续性和...
在本文中,我们将探讨如何在Windows环境下通过Apache HTTP Server实现负载均衡,并与多个Tomcat应用实例结合形成一个集群。这个配置适用于需要高可用性和可扩展性的Web应用程序部署,特别是当单个Tomcat实例无法满足...
本教程将探讨如何在Windows环境下,利用Nginx作为反向代理和负载均衡器,与Tomcat应用服务器配合,搭建一个负载均衡和集群环境。这种配置能够提升系统的稳定性和处理能力,确保即使在服务器压力大的情况下,也能为...
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把...
windows环境下Nginx(1.15.10)+Tomcat(7.0.93)搭建高性能负载均衡集群,快速部署.txt文档,启动tomcat和Nginx就行,有完整的demo可以直接运行,有测试访问地址localhost:8888/test/
在集群环境中,多个Tomcat实例协同工作,提供高可用性和负载均衡。Apache 2.2.4和Tomcat 6.0.16是这两个组件的老版本,但它们仍然能提供基本的集群功能。以下是关于Apache Tomcat集群的一些关键知识点: 1. **集群...
window+apache+tomcat的集群整合 Apache是http服务器,我们可以利用它对tomcat进行负载均衡.
window7下运行的centos5.4的Vmware7虚拟机 nginx-0.8.51 tomcat-6.0.20 pcre-8.12 jdk-6u7-linux-i586 3 安装步骤 3.1 安装nginx所需的pcre tar xvzf pcre-8.12.tar.gz cd pcre-8.12 ./configure make && ...
1. **Tomcat集群**:Tomcat集群是指通过多个独立的Tomcat实例协同工作,提供负载均衡和故障转移的能力。配置Tomcat集群主要涉及以下步骤: - 配置服务器:每个Tomcat实例都需要在相同的网络环境中,并且可以通过...
10. **集群和负载均衡**:Tomcat支持集群配置,可以将请求分发到多个服务器,提高可用性和扩展性。 总之,Tomcat 8是Java Web开发的重要基础设施,无论是在学习还是实际工作中,理解和掌握其工作原理及配置技巧都是...
本文档详细介绍了如何在Windows环境下安装、配置和使用Nginx,以及如何通过Nginx实现Tomcat集群的负载均衡。 **1.1 Nginx在Windows平台的配置** 1.1.1 **课程目标** 学习Nginx的主要目的是掌握如何在Windows系统中...
- 集群配置可以在高并发或故障转移场景下提高服务的可用性和性能,通过负载均衡策略将请求分发到不同的Web服务器节点。 2. App Server(应用服务单点或集群): - App Server处理Web Server转发过来的业务逻辑,...
window Nginx+Tomcat 集群搭建
4. **Cluster**:如果配置了集群功能,Tomcat可以实现负载均衡和故障转移,以提高可用性和可扩展性。 5. **Manager**:这是一个Web应用程序管理工具,允许用户通过浏览器界面来部署、卸载或更新应用程序。 6. **...
10. **集群与负载均衡**:Tomcat支持集群配置,可以在多个实例间实现 session 复制和故障转移,提高可用性和性能。配合负载均衡器,可以将请求分发到多个Tomcat实例。 总之,"tomcat-8.5.50-windows-x64.zip"提供了...
Tomcat的集群(Cluster)和负载均衡(Load Balance)是高级特性,用于提高服务的可用性和性能。集群允许多个Tomcat实例协同工作,看起来像是单一的服务,通过网络共享内存进行通信。负载均衡则是在多个服务器之间...
- **集群与负载均衡**:在高并发场景下,可以考虑使用Tomcat集群和负载均衡策略,提高系统的可用性和可扩展性。 总结来说,Tomcat 6.0是Java Web开发中的一个重要组件,与MyEclipse结合,为开发者提供了便捷的开发...
- 配置多个Tomcat实例,通过负载均衡器分发请求,提高可用性和性能。 - 使用`cluster`模块实现应用状态的复制,保证高可用性。 8. **故障排查**: - 查看日志文件定位问题。 - 使用`jstack`和`jconsole`等JDK...
10. **集群与负载均衡**:虽然Tomcat 6.0不是设计用来做大型集群部署的,但可以通过修改`conf/server.xml`文件配置多个`<Engine>`、`<Host>`和`<Connector>`元素,实现简单的负载均衡和故障转移。 总之,Apache ...