`

Linux下轻松实现Apache,Tomcat负载均衡和集群

阅读更多

环境:

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>
分享到:
评论
1 楼 sixsun 2013-05-28  
写的真叫一个乱

相关推荐

    Apache的Tomcat负载均衡和集群(linux,centos)

    Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod

    Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册[定义].pdf

    以上步骤详细介绍了如何在Linux环境下构建Apache双机高可用集群和Tomcat负载均衡集群。确保每一步都正确执行,以实现高可用性和负载均衡,提升Web服务的稳定性和效率。在实际操作过程中,可能需要根据实际情况对配置...

    Apache+Tomcat+Linux集群和负载均衡

    ### Apache+Tomcat+Linux集群和负载均衡 在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现...通过以上步骤,我们可以成功搭建一套基于Apache+Tomcat+Linux的负载均衡集群环境,有效提升Web应用的性能和稳定性。

    Tomcat集群与负载均衡

    负载均衡集群是指一组服务器,其中包含负载均衡器和多个后端服务器。负载均衡器负责将客户端请求按照一定的策略分发到后端服务器上,后端服务器则负责实际的数据处理和服务提供。这种方式可以有效地分摊网络负载,...

    Linux环境下负载均衡集群的实现.pdf

    为了提高服务器的性能,作者提出了使用 Tomcat 和 Apache 在 Linux 环境下进行集成,实现负载均衡集群。作者分析了负载均衡集群的架构,详细阐述了方案的实现过程。 负载均衡集群的实现可以分为以下几个步骤: 1. ...

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    基于Xen虚拟机实现Apache tomcat 集群搭建

    9. 负载均衡集群配置:负载均衡是将进入的网络流量分散到多个服务器上,以提高网站、应用、数据库或其他服务的性能和可靠性。本文展示了如何使用mod_jk模块配置负载均衡,将用户请求分发到不同的Tomcat实例。 10. ...

    linux下apache+tomcat实现集群

    在Linux环境下,构建Apache与Tomcat的集群是提高Web服务可扩展性和高可用性的重要手段。这个集群配置通常涉及到负载均衡、故障转移以及资源优化。本文将深入探讨如何在Red Hat 5操作系统上实现这样的集群配置。 ...

    Linux下通过Apache搭建Tomcat集群

    在Linux环境中,通过Apache HTTP服务器(简称Apache)搭建Tomcat集群是一种常见的高可用性和负载均衡配置方式。Apache作为反向代理服务器,可以将用户的请求分发到多个Tomcat实例上,从而实现应用服务的扩展和容错。...

    linux下配置tomcat集群的负载均衡

    Linux集群大致可分为三类:高可用集群、负载均衡集群和科学计算集群。高可用集群主要用于保证应用程序的持续服务,即使在硬件或软件故障时也能快速切换,确保业务不受影响。负载均衡集群则通过分配工作负载来提高...

    Nginx+Tomcat负载均衡企业实战.docx

    Nginx+Tomcat负载均衡企业实战.docx 本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等...

    Linux环境搭建 Apche+Tomcat 集群负载均衡

    本方案的目标是在Linux环境下构建一套基于Apache+Tomcat的负载均衡集群,该集群由一个Apache服务器和多个Tomcat服务器组成。Apache作为前端代理服务器,负责接收用户的HTTP请求,并根据请求类型将其转发给后端的...

    搭建apache(静态资源)+tomcat(动态网页)负载均衡服务器集群.zip_tomcat分布式

    在搭建Apache和Tomcat的负载均衡集群时,有以下关键步骤: 1. **安装与配置Apache**:首先在各服务器节点上安装Apache HTTP服务器,然后进行必要的配置,包括设置虚拟主机,以及启用模块如mod_proxy、mod_proxy_...

    apache+tomcat集群均衡负载 简单实现步骤

    总结,实现Apache+Tomcat集群负载均衡的关键在于正确配置Apache的mod_proxy模块,以及确保Tomcat集群的会话一致性。通过这种方式,我们可以有效分摊高并发访问压力,提高系统的稳定性和响应速度。同时,持续监控和...

    Linux负载均衡集群

    集群配置是实现高可用性和可伸缩性的重要方法,尤其在处理高并发和关键业务时,Linux下的Apache负载均衡集群与JBoss结合提供了高效、稳定的服务解决方案。通过合理的配置和维护,企业可以构建出强大且可靠的IT基础...

    linux下配置tomcat集群的负载均衡.pdf

    Linux环境下配置Tomcat集群的负载均衡是提高Web应用性能和可用性的重要手段。负载均衡的主要目的是将工作负载分散到多个服务器上,以避免单一服务器过载,同时提供高可用性和容错能力。本文将详细讨论三种常见的...

    linux下配置tomcat集群的负载均衡.zip

    在Linux环境下配置Tomcat集群以实现负载均衡是提高Web应用性能和可用性的重要步骤。Tomcat作为Apache软件基金会的开源Java Servlet容器,广泛应用于各种规模的企业级应用部署。本教程将详细阐述如何在Linux系统中...

    Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程

    在Linux环境中,使用Apache、Tomcat和JK模块实现负载均衡和群集是一项常见的高可用性架构设计,它能够有效地分发网络流量,提高系统的可扩展性和稳定性。Apache作为前端Web服务器,负责接收用户请求并根据配置策略将...

Global site tag (gtag.js) - Google Analytics