环境:
Linux操作系统: Red Hat Enterprise Linux Server release 5.2
Apache: 2.2.3
Tomcat: 6.0.20
第一部分,配置负载均衡
1.复制mod_jk-1.2.28-httpd-2.2.X.so
把:mod_jk-1.2.28-httpd-2.2.X.so文件复制到:/etc/httpd/modules/目录下,同时更改权限为:755
2.修改Apache配置文件http.conf
在: /etc/httpd/conf/httpd.conf文件的最后添加一行
include conf/mod_jk.conf
3. http.conf 同目录下新建mod_jk.conf文件,内容如下
#加载mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.X.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
#指定那些请求交给tomcat处理,"router"为在workers.propertise里指定的负载均衡器
JkMount /edi/* router
JkMount /queryext/* router
# 添加JK状态管理器
JkMount /jkmanager/* jkstatus
# Enable the JK manager access from localhost only
#http://127.0.0.1:8080/jkmanager/,可以查看,控制JK状态
<Location /jkmanager/>
JkMount jkstatus
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
4.在http.conf同目录下新建 workers.properties文件,内容如下
#========状态控制器========
worker.list=jkstatus #状态控制器 列表
worker.jkstatus.type=status #状态控制器类型(jkstatus)
#========router,负载均衡控制器========
worker.list = router #负载均衡器 列表
worker.router.type=lb #负载均衡器类型(lb)
worker.router.balance_workers=tomcat1,tomcat2 #指定分担请求的tomcat实例名
worker.router.sticky_session=True #是否使用粘性会话
#========tomcat1========
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.type=ajp13 #实例节点类型
worker.tomcat1.lbfactor=1 #worker的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.type=ajp13 #实例节点类型
worker.tomcat2.lbfactor=1 #worker的加权比重,值越高,分得的请求越多
5.修改tomcat配置文件server.xml
注意:要把
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改成合适的端口号
第二部分,配置集群
只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session
1. 修改tomcat1, tomcat2的server.xml,将集群部分配置的注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,
当然,如果是两台电脑,是不用改端口的,去掉注释符即可.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>
|
注意<Engine>节点,要添加jvmRoute属性
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX">
2.应用配置:
对于要进行负载和集群的的tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置
<distributable/>
<?xml version="1.0" encoding="UTF-8"?> <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"> <display-name>TomcatDemo</display-name> <distributable/> </web-app> |
分享到:
相关推荐
Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod
以上步骤详细介绍了如何在Linux环境下构建Apache双机高可用集群和Tomcat负载均衡集群。确保每一步都正确执行,以实现高可用性和负载均衡,提升Web服务的稳定性和效率。在实际操作过程中,可能需要根据实际情况对配置...
### Apache+Tomcat+Linux集群和负载均衡 在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现...通过以上步骤,我们可以成功搭建一套基于Apache+Tomcat+Linux的负载均衡集群环境,有效提升Web应用的性能和稳定性。
负载均衡集群是指一组服务器,其中包含负载均衡器和多个后端服务器。负载均衡器负责将客户端请求按照一定的策略分发到后端服务器上,后端服务器则负责实际的数据处理和服务提供。这种方式可以有效地分摊网络负载,...
为了提高服务器的性能,作者提出了使用 Tomcat 和 Apache 在 Linux 环境下进行集成,实现负载均衡集群。作者分析了负载均衡集群的架构,详细阐述了方案的实现过程。 负载均衡集群的实现可以分为以下几个步骤: 1. ...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
9. 负载均衡集群配置:负载均衡是将进入的网络流量分散到多个服务器上,以提高网站、应用、数据库或其他服务的性能和可靠性。本文展示了如何使用mod_jk模块配置负载均衡,将用户请求分发到不同的Tomcat实例。 10. ...
在Linux环境下,构建Apache与Tomcat的集群是提高Web服务可扩展性和高可用性的重要手段。这个集群配置通常涉及到负载均衡、故障转移以及资源优化。本文将深入探讨如何在Red Hat 5操作系统上实现这样的集群配置。 ...
在Linux环境中,通过Apache HTTP服务器(简称Apache)搭建Tomcat集群是一种常见的高可用性和负载均衡配置方式。Apache作为反向代理服务器,可以将用户的请求分发到多个Tomcat实例上,从而实现应用服务的扩展和容错。...
Linux集群大致可分为三类:高可用集群、负载均衡集群和科学计算集群。高可用集群主要用于保证应用程序的持续服务,即使在硬件或软件故障时也能快速切换,确保业务不受影响。负载均衡集群则通过分配工作负载来提高...
Nginx+Tomcat负载均衡企业实战.docx 本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等...
本方案的目标是在Linux环境下构建一套基于Apache+Tomcat的负载均衡集群,该集群由一个Apache服务器和多个Tomcat服务器组成。Apache作为前端代理服务器,负责接收用户的HTTP请求,并根据请求类型将其转发给后端的...
在搭建Apache和Tomcat的负载均衡集群时,有以下关键步骤: 1. **安装与配置Apache**:首先在各服务器节点上安装Apache HTTP服务器,然后进行必要的配置,包括设置虚拟主机,以及启用模块如mod_proxy、mod_proxy_...
总结,实现Apache+Tomcat集群负载均衡的关键在于正确配置Apache的mod_proxy模块,以及确保Tomcat集群的会话一致性。通过这种方式,我们可以有效分摊高并发访问压力,提高系统的稳定性和响应速度。同时,持续监控和...
集群配置是实现高可用性和可伸缩性的重要方法,尤其在处理高并发和关键业务时,Linux下的Apache负载均衡集群与JBoss结合提供了高效、稳定的服务解决方案。通过合理的配置和维护,企业可以构建出强大且可靠的IT基础...
Linux环境下配置Tomcat集群的负载均衡是提高Web应用性能和可用性的重要手段。负载均衡的主要目的是将工作负载分散到多个服务器上,以避免单一服务器过载,同时提供高可用性和容错能力。本文将详细讨论三种常见的...
在Linux环境下配置Tomcat集群以实现负载均衡是提高Web应用性能和可用性的重要步骤。Tomcat作为Apache软件基金会的开源Java Servlet容器,广泛应用于各种规模的企业级应用部署。本教程将详细阐述如何在Linux系统中...
在Linux环境中,使用Apache、Tomcat和JK模块实现负载均衡和群集是一项常见的高可用性架构设计,它能够有效地分发网络流量,提高系统的可扩展性和稳定性。Apache作为前端Web服务器,负责接收用户请求并根据配置策略将...