1、Tomcat集群配置关键点:
////////////////////////begin///////////////
<1>All your session attributes must implement java.io.Serializable
==>session中存储的对象必须是可序列化的,即实现类【java.io.Serializable】
<2>Uncomment the Cluster element in server.xml
==>在server.xml中使用Cluster元素;
<3>If you have defined custom cluster valves, make sure you have the ReplicationValve defined as well under the Cluster element in server.xml
==>如果定义了自定义的cluster值,确保在server.xml的元素【ReplicationValve】中包含进去;
<4>If your Tomcat instances are running on the same machine, make sure the tcpListenPort attribute is unique for each instance,
in most cases Tomcat is smart enough to resolve this on it's own by autodetecting available ports in the range 4000-4100
==>如果tomcat实例运行在同一个主机上,确保tcp监听端口号彼此不同,默认有:8080,8009,8443,8005。
<5>Make sure your web.xml has the <distributable/> element
==>确保你的应用的web.xml中有元素【<distributable/>】,建议放到根下;
<6>If you are using mod_jk, make sure that jvmRoute attribute is set at your Engine <Engine name="Catalina" jvmRoute="node01" >
and that the jvmRoute attribute value matches your worker name in workers.properties
==>如果你使用了mod_jk,确保server.xml中【<Engine name="Catalina" jvmRoute="node01" >】的jvmRoute属性和负载均衡器的worker中的jvmRoute属性一致;
<7>Make sure that all nodes have the same time and sync with NTP service!
==>确保所有的节点有时间一致,并且通过NTP服务进行同步;
<8>Make sure that your loadbalancer is configured for sticky session mode.
==>负载均衡器开启session粘贴
<9>注意:Tomcat的content.xml文件不要放开元素 <Manager pathname="" />
如下:
////////////////begin/////////
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
////////////////end///////////
<10>注意:如果有多个节点时,需要保证前面的节点启动完全后,再启动后面的节点;
///////////end//////////
<11>需要检查tomcat日志,看是否有以下类似信息:tomcat6,tomcat7
///////////////begin//////////
Cluster is about to start ==>集群启动
Receiver Server Socket bound to:/10.88.147.205:4000
Setting cluster mcast soTimeout to 500
JvmRouteBinderValve started
Register manager /bar to cluster element Host with name localhost =>注册受管应用到集群中,和【<distributable/>】相关;
Starting clustering manager at /bar
Manager [/bar]: session state send at 8/28/14 4:22 PM received in 875 ms. =>session是否得到同步;
Received memberDisappeared[org.apache.catalina.tribes.membership.MemberImpl[tcp://{10, 88, 147, 148}:5000,{10, 88, 147, 148},5000, alive=111615,id={49 -1 97 74 27 -115 72 -25 -118 -35 -115 84 -3 -57 77 -61 }, payload={}, command={}, domain={}, ]] message. Will verify.
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector memberDisappeared
Verification complete. Member already disappeared[org.apache.catalina.tribes.membership.MemberImpl[tcp://{10, 88, 147, 148}:5000,{10, 88, 147, 148},5000, alive=111615,id={49 -1 97 74 27 -115 72 -25 -118 -35 -115 84 -3 -57 77 -61 }, payload={}, command={}, domain={}, ]]
///////////////end////////////
2、使用Apache做负载均衡的样例配置,此处采用ajp,而没有使用http,使用http可能导致出现实际地址的问题出现;
///////////////begin//////////
Listen 80
<VirtualHost *:80>
ProxyRequests off
ProxyPass / balancer://test/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3
#ProxyPassReverse / balancer://test/
<Proxy balancer://test>
BalancerMember ajp://10.88.147.148:8009 route=jvm1
BalancerMember ajp://10.88.147.148:9009 route=jvm2
</Proxy>
SetEnv proxy-nokeepalive 0
</VirtualHost>
///////////////end/////////////
3、使用Nginx做负载均衡的样例配置,
/////////////////begin/////////
upstream 10.88.147.205 {
#enable session stick
ip_hash;
server 10.88.112.165:8080 max_fails=3 fail_timeout=5s;
server 10.88.112.165:80 max_fails=3 fail_timeout=5s;
}
location / {
root html;
index index.html index.htm;
proxy_pass http://10.88.147.205;
proxy_redirect default;
proxy_connect_timeout 10;
}
注意:层次结构上,http元素在最外层,其中包含元素:upstream和server,而server中才包含location元素。
/////////////////end///////////
分享到:
相关推荐
Nginx与Tomcat的负载均衡是指通过Nginx服务器来实现Tomcat集群的负载均衡,以提高系统的高性能和可扩展性。下面是实现负载均衡的详细步骤和知识点: 一、环境准备 * Nginx 1.8.0 * Apache Tomcat 6.0.33 二、目标...
4. **配置负载均衡器**:在客户端和Tomcat服务器之间部署一个负载均衡器,如Nginx、HAProxy或Apache HTTP Server,它们会根据预设策略将请求分发到各个节点。 5. **测试和优化**:完成基本配置后,进行压力测试以...
Tomcat6集群 + Apache + Nginx 均衡负载 以及apache 的ab进行压力测试的方法
本篇文章将详细讲解如何使用Nginx作为反向代理服务器来实现对Tomcat应用服务器的负载均衡和集群配置。 首先,我们需要理解Nginx和Tomcat的角色。Nginx是一款高性能的HTTP和反向代理服务器,常用于处理静态内容和...
在这个“nginx_tomcat8_redis负载均衡demo”中,我们将探讨如何利用Nginx作为反向代理服务器,Tomcat作为应用服务器集群,以及Redis作为会话持久化存储,构建一个高效且可扩展的负载均衡解决方案。 首先,Nginx是一...
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等方面的内容。 一、从 0 开始构建 Nginx...
【Nginx+Tomcat负载均衡集群部署】 在IT领域,构建高可用和高并发的Web服务是至关重要的。Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,...
### Nginx 1.11.3 + Apache Tomcat 7.0.47 高性能负载均衡集群搭建详解 #### 一、引言 随着互联网应用的不断发展,单一服务器已经难以满足高并发访问的需求。为了提高系统的可用性和响应速度,负载均衡技术成为了一...
【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。
本教程将详细阐述如何在Linux系统中设置Tomcat集群,并通过负载均衡技术确保服务的高效稳定运行。 首先,理解负载均衡的基本概念至关重要。负载均衡是一种分布式系统架构,通过将工作负载分布到多个计算资源(如...
这个配置仅是最基础的轮询负载均衡,Nginx还支持更复杂的负载均衡策略,如权重分配、最少连接数、IP哈希等,可以根据实际需求进行调整。此外,为了确保系统的高可用性,还可以配置Nginx和Tomcat的故障转移机制,当某...
在本场景中,我们将讨论如何配置Tomcat集群,并结合Nginx作为负载均衡器。 首先,我们需要理解Tomcat集群的基本概念。Tomcat集群是指多个Tomcat实例协同工作,共享会话数据和应用状态,从而提高系统的处理能力和...
3. **负载均衡器配置:** 配置如Nginx,设定相应的负载均衡策略,并将请求转发到各个Tomcat实例。 4. **应用配置:** 确保应用是无状态的,或者能处理来自不同节点的请求。 **五、注意事项** 1. **序列化兼容性:*...
8. **扩展性**:随着业务的增长,可以通过增加更多Tomcat实例并更新Nginx配置来轻松扩展系统。此外,Redis也可以通过主从复制或Cluster模式提升自身的可扩展性和容错性。 以上就是关于"redis+tomcat+nginx负载均衡...
在搭建均衡负载集群时,首先需要配置Nginx的反向代理和负载均衡设置。在Nginx的配置文件中,可以通过`upstream`块定义一组后端服务器,然后在`server`块中使用`proxy_pass`指令将请求转发到该组服务器。常用的负载...
在Tomcat集群中,负载均衡通常由一个负载均衡器(如Nginx或Apache HTTP Server)来实现,它根据预设的策略(轮询、最少连接数、IP哈希等)将请求分配到不同的Tomcat实例。 以下是搭建Tomcat集群并实现负载均衡的...
- 修改Nginx配置文件,配置负载均衡策略。例如,可以使用轮询(round-robin)策略或者基于IP的黏性会话(sticky sessions)。 ```nginx upstream backend { server tomcat1.example.com; server tomcat2....
5. 负载均衡策略:在Nginx配置文件中设定负载均衡策略,如轮询、权重分配等。 6. 监控与优化:部署完成后,需要持续监控系统性能,根据实际情况调整Nginx和Redis的配置,优化系统资源使用。 7. 测试验证:通过模拟...
5. **配置DNS或负载均衡器**:确保客户端请求可以均匀分布到各个节点,可以通过DNS轮询或设置负载均衡器(如Nginx、HAProxy或Apache HTTP Server的mod_jk模块)来实现。 现在我们来谈谈Apache HTTP Server的mod_jk...