`
zhoushuping
  • 浏览: 45466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache+Tomcat会话粘滞(Session Stick)集群配置

阅读更多
我前面一篇文章讲述过使用Apache+tomcat进行session复制的一个配置,但是实际中session复制需要消耗大量的资源,由于项目实际需要,此次选择的配置方式为Session Sticky(会话粘滞),这种方式将同一用户的请求转发到特定的Tomcat服务器上,避免了集群中Session的复制,缺点是用户只跟一台服务器通信,如果此服务器down掉,那就会造成系统无法访问。
软件配置:Apache2.2+tomcat5.5+xp
这次直接采用的model为mod_proxy_ajp.so,在2.2中已经集成。
首先安装Apache,然后修改配置文件http.conf,将以下三个model注释去掉:
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

然后在http.conf文件最后加入以下配置:
ProxyPass / balancer://tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3  
ProxyPassReverse / balancer://tomcatcluster/   
<Proxy balancer://tomcatcluster>  
BalancerMember ajp://localhost:8009 route=tomcat1
BalancerMember ajp://localhost:9009 route=tomcat2
</Proxy> 

以上代码配置了Proxy的相关参数,<Proxy>模块定义了均衡负载的配置,其中两个Tomcat Server都配置在同一台服务器上,端口分别为8009、9009,并配置各自的route,这样Apache Server就能根据route将请求转发给特定的Tomcat。
接下来修改第一个Tomcat的server.xml文件,如下:
<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
其中的port为前面<Proxy>中设定的端口,还要配置其route,代码如下:
<!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
第二个tomcat修改相同。
然后在两个tomcat拷贝ROOT改个名字,简单改下index.jsp文件,启动第一个和第二个tomcat,进行访问,在DOS终端打印输出,打开多个浏览器,不断刷新可以看出,用户请求只会第一次访问的tomcat上进行响应,配置成功。
0
0
分享到:
评论

相关推荐

    apache + tomcat + mod_jk集群

    4. **配置mod_jk**:在Apache的配置文件httpd.conf中,添加mod_jk的LoadModule语句,然后创建一个名为workers.properties的文件,定义Tomcat集群的服务器实例。每个实例包括IP地址、端口、工作目录等信息。 5. **...

    apache + tomcat 集群+session复制解决方案

    Apache 和 Tomcat 集群配合 Session 复制是一种常见的高可用性和负载均衡解决方案,尤其适用于大型网站和企业级应用。以下将详细解释这个方案的关键点。 **整体方案策略** 1. **部署逻辑图** 部署逻辑通常包括...

    nginx+tomcat+redis完成session共享

    3. **配置Nginx**:在Nginx配置文件中,设置负载均衡策略,例如轮询、最少连接数或根据session ID进行粘滞会话。使用`proxy_pass`指令将请求转发到正确的Tomcat服务器,并配置`proxy_set_header`以传递session ID。 ...

    nginx+tomcat7+memcached session会话保持

    总结起来,这个配置方案通过Nginx的会话保持功能配合Tomcat7与Memcached的集成,确保了用户会话在跨服务器环境下的连续性。同时,这种架构也具有良好的可扩展性和容错性,因为即使某台服务器宕机,其他服务器仍能...

    Apache+tomcat集群环境配置

    在构建高性能、高可用性的Web应用系统时,Apache与Tomcat的集群配置是常见的解决方案。Apache作为前端服务器,可以通过负载均衡技术将用户请求分发到多个后端的Tomcat实例上,实现请求的分担,同时通过session同步,...

    apache+tomcat+jk集群

    在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...

    memcached+tomcat7共享session所需要的jar包

    这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展性和可用性。 在Java Web开发中,Session是服务器端用于存储用户状态信息的关键技术。然而,当使用多台Tomcat服务器构建集群时,每...

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

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

    Apache+JK+Tomcat搭建负载均衡

    `sticky_session`设置为1表示启用会话粘滞,即同一个用户在一段时间内会被定向到同一台Tomcat服务器,以保持会话状态的一致性。 在实际部署中,为了最大化系统可用性和性能,建议每个Tomcat实例部署在独立的物理或...

    apache+tomcat+mysql 的负载平衡和集群技术

    - 通过配置 `&lt;Valve className="org.apache.catalina.ha.session.JSessionIdCookieProcessorValve"/&gt;` 实现客户端与特定服务器之间的粘滞会话。 #### 二、MySQL 数据库集群 数据库是整个 Web 应用的核心组件之一...

    apache+tomcat配置文件

    6. **Session粘滞(Session Stickiness)**:为了保持用户会话的连续性,可以配置mod_proxy_balancer来基于特定的会话ID或cookie将请求始终路由到同一个Tomcat实例。 7. **安全性**:使用SSL/TLS证书进行HTTPS配置...

    apache+tomcat 集群

    总结,Apache+Tomcat集群的配置涉及到多个层面,包括前端负载均衡、后端应用服务器的集群配置、session复制与粘滞会话管理,以及故障转移和性能调优。正确配置和维护这样的集群环境,可以显著提升Web应用的稳定性和...

    apache+tomcat配置信息 JK比较实用

    会话粘滞可以保证用户在多个请求之间保持相同的会话状态,而健康检查则允许Apache检测Tomcat实例的健康状况,当某个Tomcat实例出现问题时,可以自动将请求路由到其他健康的实例。 在实际应用中,我们还需要关注性能...

    apache+tomcat集群03 mod_JK

    将两者结合,通过mod_JK模块,可以实现Apache与Tomcat的集群配置,以提高网站的负载能力和可用性。 首先,我们要理解什么是Apache+Tomcat集群。集群是一种通过多台服务器共享工作负载的方式来提升系统性能和容错...

    apache+tomcat 负载平衡

    配置mod_proxy可以在Apache配置文件中定义多个后端Tomcat服务器,并设置负载平衡策略。例如,可以使用以下配置将请求均匀分配给多个Tomcat实例: ``` ProxyPass / balancer://mycluster/ ProxyPassReverse / ...

Global site tag (gtag.js) - Google Analytics