`

apache+tomcat 负载均衡+session绑定 配置集群环境

阅读更多

其中负载均衡由Apache2.2.4担任 内部服务器为Tomcat 6

实验中本机运行1个Apache与两个Tomcat 6

当然 目前只知道怎么配置 能大概理解部分配置文件属性 具体配置文件的所有含义还不明白……

安装好Apache与Tomcat后开始配置

  
1 下载Tomcat Connector(jk.1.2.6)

Tomcat Connector下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/

此处注意一定要下载与Apache版本匹配的jkjk文件名后半部分名称反应Apache的版本,如:mod_jk-1.2.26-httpd-2.2.4.so其匹配的Apache2.2.4,与本次安装的Apache版本一致。

 

  
2 Apache配置

 

       把下载的 mod_jk-1.2.28-httpd-2.2.3.so 改名为 mod_jk2.so 放到apache的modules目录下(不改名不行么?不知道为什么我的没改名,就出问题了,当然我的配置文件中也是mod_jk-1.2.28-httpd-2.2.3.so 但是就是不知道为什么会有问题),修改apache的conf目录下的httpd.conf,在文件最后加入一行include conf\mod_jk2.conf,在conf目录下创建mod_jk2.conf文件,内容如下:

# Load mod_jk2 module   

LoadModule jk_module modules/mod_jk2.so   

 

# Where to find workers.properties   

JkWorkersFile conf/workers.properties    

  

# Where to put jk logs   

JkLogFile logs/mod_jk2.log   

  

# Set the jk log level [debug/error/info]   

JkLogLevel info   

  

# Select the log format   

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "  

  

# JkOptions indicate to send SSL KEY SIZE,   

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories   

  

# JkRequestLogFormat set the request format   

JkRequestLogFormat "%w %V %T"  

  

# Send JSPs for context / to worker named loadBalancer   

JkMount /*.jsp loadBalancer  

 

2  jk2配置

   jk2的配置全在一个配置文件中,文件名为workers.properties,和apache 的httpd.conf放在同一个目录下。以下是这个文件的内容:

#  
# workers.properties  
#  
 
# list the workers by name  
 
worker.list=tomcat1, tomcat2, loadBalancer  
 
# ------------------------  
# First tomcat server  
# ------------------------  
worker.tomcat1.port=8009 
worker.tomcat1.host=192.168.2.203 
worker.tomcat1.type=ajp13  
 
# Specify the size of the open connection cache.  
#worker.tomcat1.cachesize  
 
#  
# Specifies the load balance factor when used with  
# a load balancing worker.  
# Note:  
# ----> lbfactor must be > 0 
# ----> Low lbfactor means less work done by the worker.  

#分发权重 值越大负载越大 测试时可以通过控制分发权值定负载顺序 测试session绑定是否成功
worker.tomcat1.lbfactor=9 
 
 
# ------------------------  
# Second tomcat server  
# ------------------------  
worker.tomcat2.port=9009 
worker.tomcat2.host=192.168.2.203
worker.tomcat2.type=ajp13  
 
# Specify the size of the open connection cache.  
#worker.tomcat2.cachesize  
 
#  
# Specifies the load balance factor when used with  
# a load balancing worker.  
# Note:  
# ----> lbfactor must be > 0 
# ----> Low lbfactor means less work done by the worker.  
worker.tomcat2.lbfactor=100 
 
 
# ------------------------  
# Load Balancer worker  
# ------------------------  
 
#  
# The loadbalancer (type lb) worker performs weighted round-robin  
# load balancing with sticky sessions.  
# Note:  
# ----> If a worker dies, the load balancer will check its state  
# once in a while. Until then all work is redirected to peer  
# worker.  
worker.loadBalancer.type=lb  
worker.loadBalancer.balanced_workers=tomcat1, tomcat2  
 
#  
# END workers.properties  

 

  
3 配置tomcat(绑定session)

Tomcat配置文件Service.xml主要注意两个地方,一个是Engine节点需要增加节点标识jvmRoute,一个是将原本注释掉的Session复制节点改为有效。具体如下:

 

<!-- Define the top level container in our container hierarchy -->

<!--jvmRoute在各个Tomcat配置中不能重复且要与worker.properties文件中的名称一致-->

<Engine name="Catalina" defaultHost=" saas "  jvmRoute=" tomcat1">

<!每个TomcatHostname必须一样-->

<Host name="saas" appBase="webapps "

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

 

到此为止,负载均衡配置完毕

 

这里省略N多注释

 

将下面的注释变去掉session复制需做以下操作)

<!--

        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

    

              <Valve className="org.apache.catalina.valves.RequestDumperValve"/>

-->

增加:

<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"/>  

            <!-- timeout="60000"-->  

            <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"/>  

         <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>  

          </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>

 

 

<!—Host节点增加一下内容表示站点根路径-->

        <Context path="/sc" docBase="." privileged="true"/>

 

 

我们分别将两个Tomcat配置文件中的jvmRoute设置为tomcat1tomcat2Server节点 端口分别配置为80059005 Connector节点端口分别配置为80809090AJPConnector端口分别配置为80099009Connector端口配置参照单主机多站点场景请注意两个Tomcat配置文件Host节点的域名配置必须一样,Server.xml中的jvmRoute名称必须和worker.properties中的tomcat实例名称一致,不然无法实现session_stricky

 

Host节点的域名配置方法:修改C:\WINDOWS\system32\drivers\etc 下的 hosts文件增加一行

127.0.0.1       saas

 

*****************************************************************************

 实现session 复制 需要在web.xml 中加上<distributable/>

<?xml version="1.0" encoding="ISO-8859-1"?>

省略N多代码。。。。。。

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

<distributable/>

</web-app>

*****************************************************************************

分享到:
评论

相关推荐

    Apache+Tomcat集群和负载均衡及Session绑定

    【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...

    Apache+Tomcat+JK 实现集群负载均衡文档

    Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...

    Apache Tomcat负载均衡及Session绑定的实现.rar

    3集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个...欢迎下载:Apache Tomcat负载均衡及Session绑定的实现.doc,共10页,3千多字,图文教程!

    apache_server+Tomcat7集群负载均衡session共享

    通过上述配置,Apache Server 2.2和Tomcat7集群可以提供高可用和高效的Web服务,同时通过session共享保证了用户会话的连续性,提升了用户体验。提供的LICENSE、NOTICE和README文件通常包含了软件授权信息、版权声明...

    Linux下Nginx+Memcached+Tomcat负载均衡集群服务搭建所需jar包

    在集群环境中,Tomcat需要配置Session复制或共享,以便在各个实例间保持用户状态。通过添加特定的jar包(如做session共享所需jar包),可以实现Tomcat间的Session同步。 4. **负载均衡策略**: - **轮询(Round ...

    实例Apache负载均衡+Tomcat集群

    本文将详细介绍如何通过Apache实现负载均衡,并结合Tomcat搭建集群环境,具体如下: 1. 项目需求及技术选型: 在面对需要提升服务能力的项目时,需要考虑成本和实际需求。本文作者在综合考虑之后,选择了成本相对较...

    apache2.2+tomcat6.0负载均衡配置软件

    Apache 2.2 和 Tomcat 6.0 的负载均衡配置是提高Web应用程序性能和可扩展性的重要技术。在高流量环境下,通过将工作负载分散到多个Tomcat实例上,可以确保服务的稳定性和响应速度,同时避免单一服务器过载。下面我们...

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    ### APACHE 2.2.9+TOMCAT6.0.18 配置负载均衡 #### 目标 本教程旨在通过使用 Apache 2.2.9 和 Tomcat 6.0.18 来搭建一个可以实际部署运行的 Web 网站。具体目标包括: 1. **实现 Apache 作为 HTTP 服务器**:...

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

    Apache和Tomcat作为广泛使用的Web服务器和应用服务器,经常被组合使用以实现集群和负载均衡,从而提高服务的性能和稳定性。这篇博客"轻松实现Apache,Tomcat集群和负载均衡"提供了详细的操作指南,以下是对其中知识点...

    tomcat集群配置

    综上所述,Tomcat集群配置涉及到多个层面,包括负载均衡策略、会话管理、故障处理等。正确配置和维护Tomcat集群,能显著提升Web应用的性能和可靠性,满足高并发场景的需求。在实际操作中,务必结合具体情况灵活调整...

    tomcat8集群session共享(redis处理)

    在构建高可用的Web服务时,Tomcat集群是常见的选择,但随之而来的一个问题就是如何在集群中的各个节点间共享Session。"Tomcat8集群session共享(redis处理)"的主题正是针对这一问题,通过集成Redis作为分布式缓存来...

    apache-tomcat-7.0.78-src.zip

    8. **Clustering与Session复制**: 用于高可用性和负载均衡,Tomcat可以配置成集群模式,实现session数据在不同节点间的复制,确保会话的连续性。 9. **错误页面与异常处理**: 可以自定义错误页面,通过web.xml配置...

    apache-tomcat-7.0.57-src.zip

    6. **Clustering and Session Replication**:Tomcat 7支持集群配置,允许在多个服务器之间共享session状态,提高可用性和负载均衡。 7. **Security**:Tomcat提供了一套强大的安全机制,包括角色基础的访问控制、...

    关于tomcat集群部署总结

    本文主要介绍了Tomcat集群部署中Session管理的相关知识点,包括Session复制和Session粘滞性的概念及其配置方法。通过合理的配置,可以有效提升系统的负载均衡能力和高可用性,从而更好地满足业务需求。希望这些内容...

    apache-tomcat-7.0.42.rar

    11. **集群与负载均衡**: Tomcat 7支持集群配置,可以实现多台服务器间的session复制和负载均衡,提升系统的可用性和可扩展性。 12. **错误处理与日志记录**: Tomcat提供详细的错误页面和日志记录功能,帮助开发者...

    apache-tomcat-7.0.69.rar

    8. **集群和负载均衡**:Tomcat 7支持集群配置,可以实现多台服务器间的session复制,从而提高可用性和可扩展性。通过mod_proxy_ajp或mod_jk等Apache HTTP Server模块,可以实现负载均衡。 9. **热部署**:当...

    apache-tomcat文件

    6. **集群与负载均衡**:Tomcat支持集群配置,通过`cluster`元素在多个实例间共享session,实现高可用性和负载均衡。 7. **连接器(Connector)**:Tomcat支持多种类型的连接器,如HTTP/1.1、AJP(Apache JServ ...

    apache-tomcat-5.5.29

    10. **集群与负载均衡**:Tomcat 5.5.29支持集群功能,通过复制session数据和故障转移实现高可用性。同时,可以配合其他负载均衡软件进行负载分发。 11. **管理工具**:Tomcat内建了Manager和Host Manager两个管理...

Global site tag (gtag.js) - Google Analytics