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///////////
分享到:
相关推荐
Tomcat6集群 + Apache + Nginx 均衡负载 以及apache 的ab进行压力测试的方法
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把...
非常经典nginx-1.11.3+apache-tomcat-7.0.47搭建高性能负载均衡集群适合初学者、入门手册。
配置apache+tomcat负载均衡和session复制,并且解决了tomcat报2009-6-5 10:10:12 org.apache.jk.common.ChannelSocket processConnection 警告: processCallbacks status 2 的问题
tomcat+apache+linux负载均衡集群配置反向代理
windowXP下搭建nginx-1.7.10和apache-tomcat-8.0.18的集群 已经配置好,下载后直接启动三个tomcat和nginx,然后访问http://localhost/即可。
一、 目标实现高性能负载均衡的Tomcat集群: 二、步骤 1、首先下载Nginx,要下载稳定版: 2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2: 3、然后修改这两个Tomcat的...
Nginx+tomcat配置集群负载均衡,了解了二者之间的区别于应用场景,对于搭建服务帮助很大。nginx配置简单,不想apache配置那么复杂
linux下apache+tomcat实现集群,压缩包里包括两篇文档(操作步骤和详解),3个压缩包(安装文件)
本文介绍了Nginx与Tomcat实现动静态分离和负载均衡,所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过...
基于ssm+shiro+redis+nginx tomcat服务器集群管理项目源码+项目说明.zip Introduction ==== 1.搭建一个最简洁,模块划分最明确的ssm+swargger+shiro+redis+nginx整合项目,采用maven作为构建工具,在有新项目开发时...
Nginx+tomcat集群Memcached+Session复制 高性能高并发服务器架构 基于nginx的tomcat负载均衡和集群 实现多服务器负载均衡 系统性能优化 数据库 Nginx+Squid负载均衡 配置好的集群 总共三十个文档">Apache+Tomcat+...
ApacheTomcat集群部署配置整合方案
下面是实现2个tomcat实现负载均衡,如果只有一个则可删除一个 apache2.2以上版本,无需使用jk_mod来集成tomcat,直接使用ajp,很方便。 修改apache配置文件httpd.conf 启用mod_proxy_ajp 代码如下: #LoadModule ...
tomcat8+Redis+nginx负载均衡集群部署,apache-tomcat-8.0.47+nginx-1.13.6+Redis-x64-3.2.100
nginx-1.5.4+apache-tomcat-7.0.42进行集群部署 注意: nginx不要放到中文路径下,如果在中文路径下会提示错误。
apache-tomcat-6.0.35.tar.gz、tomcat-native-1.1.20-src.tar.gz apr-1.4.6.tar.gz、apr-iconv-1.2.1.tar.gz、apr-util-1.4.1.tar.gz jdk-1_5_0_22-linux-i586.bin #mkdir –p /usr/local/soft #将以上软件上传到...
Nginx是一个高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3...在这里我们采用集群部署方式,使用多个Tomcat,反向代理使用Nginx。 架构如下: 准备工作 apache-tomcat-7.0.61 nginx-1.12.2 Redis-x64-3.2.10
linux 下实现apache+tomcat集群及session复制
一、集群和负载均衡的概念 (一)集群的概念 集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,...