1.方案特点
-
Apache端可选使用sticky session配置负载均衡,是否配置sticky只是影响负载均衡的粒度。
-
Apache端配置故障转移.
-
Tomcat端使用官方文档描述的cluster配置,通过多播实现内存方式的session复制,可选使用同步复制和异步复制。
2.建议场景
对于对SESSION强依赖的系统,并且对系统处理能力要求不是太高,只考虑2台TOMCAT作为后端服务的主备方式的情况,这是一种简答的配置。不适合太多的TOMCAT节点,节点越多,复制SESSION的代价会几何方式增加。如:适合小型网站,管理系统,小型业务系统。
3.基础环境安装设置
操作系统环境,APACHE安装,TOMCAT集群安装,TOMCAT测试工程请参见:
http://zp820705.iteye.com/blog/1347417
4.TOMCAT配置
Tomcat集群配置后端Tomcat Server为支持AJP的独立服务,以适应前端Apache配置为粘性会话(sticky-session),Tomcat节点配置Cluster,支持以多播方式进行内存级Session复制。
Tomcat1配置
配置Cluster,使用多播方式同步复制实现节点间session复制。详细配置参数请参见:
http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
修改server.xml,在Engine节点内,host节点后,加入Cluster配置,如下:
<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"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
修改Engine节点配置,以支持AJP方式连接
<Engine name="Catalina" defaultHost="localhost">
为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
完整配置文件请参见:
配置完成保存后,通过SCP命令拷贝到TOMCAT2节点
scp server.xml root@10.10.10.12://opt/apache-tomcat-6.0.33/conf/
Tomcat2配置
Tomcat2的配置基本与TOMCAT1配置相同,唯一不同的只是AJP的jvmRoute参数不同。
修改server.xml中
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
为:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
5.Apache配置
apache的配置方式还是采用vhost方式配置,主配置文件(conf/httpd.conf)引用(include)vhost子配置文件(conf/extra/httpd-vhosts.conf)方式.
Apache的编译请参考:http://zp820705.iteye.com/blog/1347749
apache编译为支持Proxy后的module情况:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule speling_module modules/mod_speling.so
LoadModule rewrite_module modules/mod_rewrite.so
删除主配置文件conf/httpd.conf文件中引用vhost的配置行的注释。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Apache虚拟主机配置(httpd-vhost.conf)
apache端可以配置sticky-session或no-sticky-session,sticky-session实现的是会话级别的负载均衡,no-sticky-session实现的是请求级别的负载均衡。可以根据实际情况选择配置。
<VirtualHost *:80>
ErrorLog "logs/acooly.org-error_log"
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
ProxyRequests Off
ProxyPreserveHost on
# apache+tomcat cluster
ProxyPass / balancer://tomcat-cluster/ stickysession=JSESSIONID|jsessionid nofailover=Off
ProxyPassReverse / balancer://tomcat-cluster/
<Proxy balancer://tomcat-cluster/>
BalancerMember ajp://10.10.10.11:8009 loadfactor=1 route=tomcat1
BalancerMember ajp://10.10.10.12:8009 loadfactor=1 route=tomcat2
ProxySet lbmethod=bybusyness
</Proxy>
</VirtualHost>
<VirtualHost *:80>
ErrorLog "logs/acooly.org-error_log"
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
ProxyRequests Off
ProxyPreserveHost on
# apache+tomcat cluster
ProxyPass / balancer://tomcat-cluster/
ProxyPassReverse / balancer://tomcat-cluster/
<Proxy balancer://tomcat-cluster/>
BalancerMember ajp://10.10.10.11:8009 loadfactor=1 route=tomcat1
BalancerMember ajp://10.10.10.12:8009 loadfactor=1 route=tomcat2
ProxySet lbmethod=bybusyness
</Proxy>
</VirtualHost>
6.测试
1.浏览器访问:http://10.10.10.11/cluster/index.jsp
上图显示后端服务为10.10.10.11
2.通过表单设置session参数key1,key2
3.停止10.10.10.11节点上的tomcat服务,再次刷新页面,查看session变量是否存储,如果存储则表示:故障转移和会话复制成功了。
- 大小: 26.3 KB
- 大小: 31.9 KB
- 大小: 33.5 KB
分享到:
相关推荐
标题中的“APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群”是指通过Apache HTTP服务器的Proxy_AJP模块配合Tomcat的stickysession特性,来构建一个高可用的Web服务集群。这样的集群可以提高...
在IT行业中,服务器集群配置是一项重要的技术,特别是对于高可用性和负载均衡的需求。Apache HTTP Server 2.4和Tomcat 7的组合是常见的Web服务器和应用服务器搭配,用于处理Java Web应用程序。本资料包“Apache2.4+...
本文档详细介绍了使用mod_proxy模块与Apache和Tomcat结合来实现负载均衡与集群配置的过程。配置前需要准备相应的环境,包括安装JDK、Apache HTTP Server和Tomcat服务器。本文档使用了Tomcat 7.0.2作为应用服务器,并...
本配置"Apache2.2+tomcat7+jk+jdk1.6"旨在实现一个稳定且可靠的环境,特别关注于session的共享与管理,以解决多服务器间的session一致性问题。 Apache2.2是Apache HTTP Server的第2.2版本,提供了强大的静态内容...
通过以上步骤,你就可以利用memcache实现Apache+Tomcat的session同步,从而构建一个高效且具有高可用性的Web服务集群。需要注意的是,虽然memcache提供了一种简单的方法来处理session同步,但在大型系统中,你可能还...
在构建高可用性Web服务时,常常需要将应用部署在多台服务器上形成集群,以实现负载均衡和故障转移。本知识点聚焦于如何在Windows环境下,利用Nginx作为反向代理,Memcached进行session共享,以及Tomcat作为Java应用...
通过以上步骤,我们已经在Windows环境下成功配置了Apache2.4与Tomcat8的反向代理集群,实现了负载均衡及Session共享。这一配置方案不仅能够提高系统的可用性和稳定性,还能有效提升用户访问速度和体验,是大型网站和...
更安全的解决方案是使用Nginx的proxy_pass指令将session信息转发到后端服务器,并配置Tomcat使用相同的session存储机制,如基于内存或数据库的session复制。 对于基于内存的session复制,Tomcat可以通过`org.apache...
在Windows环境下,Apache2.2和Tomcat6的组合是一个常见的Web服务器架构,用于搭建集群、实现负载均衡和处理session共享。Apache作为前端反向代理服务器,负责分发请求到后端的多个Tomcat实例,以提高应用的可用性和...
标题中的“在32位操作系统上配置apache+tomcat集群/负载均衡/session复制”涉及到的是在32位系统环境下,如何构建一个使用Apache HTTP Server作为前端负载均衡器,与多个Tomcat应用服务器协同工作的集群环境,并实现...
在高并发、大流量的场景下,为了提高服务的可用性和性能,通常会采用集群的方式来部署Apache和Tomcat。下面将详细介绍在64位Windows系统上配置Apache和Tomcat集群的步骤及注意事项。 **一、Apache负载均衡配置** 1...
【Nginx+Tomcat+Memcached实现Tomcat集群和session共享】 在现代Web应用程序的部署中,为了提高系统的可用性和可扩展性,通常会采用集群技术。将多个Tomcat服务器组成一个集群,通过负载均衡策略分发用户请求,以...
将Apache与Tomcat集成配置成集群,可以提高网站的可用性和可扩展性,实现负载均衡,提升服务性能。 集群的基本概念是将多个独立的服务器节点组织在一起,以一个整体对外提供服务,当某个节点出现问题时,其他节点...
总结,"apache+tomcat集群配置文件和文档说明"涵盖了Apache和Tomcat的集群配置,涉及Apache的负载均衡配置、Tomcat的session复制和集群通信设置,以及Java环境的准备。通过这些配置,可以构建一个高可用的Web服务...
Apache和Tomcat集群配置是一种常见的高可用性和负载均衡解决方案,特别是在需要处理大量HTTP请求和运行Java Web应用程序的环境中。这个集群设置将Apache作为前端代理服务器,而Tomcat作为后端应用服务器,负责处理...
Apache2.4与Tomcat8的集群配置是一个高级IT主题,涉及到Web服务器和应用服务器的协同工作,以提高网站的可扩展性和可靠性。Apache HTTP Server(通常简称为Apache)是世界上最广泛使用的开源Web服务器,而Tomcat则是...