CentOS 6.5 安装tomcat集群,配置Apache做负载均衡

本人只做了两个tomcat的集群

一、首先安装Apache作负载均衡。

二、安装Apache TomcatConnector作请求分发。

三、安装tomcat:

1、  下载Linux下tomcat安装包:

2、  网上下载安装包:点击打开链接

也可以去我上传的资源下载,不过现在只能用积分了,本来不需要积分的。囧,地址:点击打开链接

3、  两次解压下载到的apache-tomcat-6.0.33.tar.gz文件至/usr/local/,并分别重命名为tomcat1和tomcat2


4、  修改tomcat2的端口:

4.1         打开tomcat2下conf/server.xml文件

4.2         修改以下内容:

            1) 将关闭Tomcat的监听端口改成由8005改为8105

即把

  <Server port="8005"shutdown="SHUTDOWN">

改为

  <Server port="8105"shutdown="SHUTDOWN">

 

2) 把http服务端口号由8080改为8180

找到

 <!-- Define a non-SSL HTTP/1.1 Connector onport 8080 -->

    <CONNECTOR port="8080"

把这里的8080改为8180

 

3) 把AJP端口号由8009改为8109

找到

  <!-- Define an AJP 1.3 Connector on port8009 -->

    <CONNECTOR port="8009"

把这里的8009改为8109

 

4) 把 HTTP 代理端口从8082改为8182(这个配置默认是被注释掉的,可跳过这一步)

找到

<CONNECTOR port="8082"

把这里的8082改为8182


5、 开启tomcat集群

5.1   打开打开tomcat下server.xml文件,在<Engine/>节点上加上jvmRoute属性,属性值为你的tomcat名,如:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat01">

5.2   在<Engine/>节点上最后加上如下内容,此内容是集群配置:

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

6、  配置Apache

        打开Apache安装目录下conf/httpd.conf文件,在文件最后面添加以下内容:

# Load mod_jk module  
LoadModule jk_module modules/mod_jk.so  
# Specify jk log file.  
JkLogFile /var/log/mod_jk.log  
# Specify jk log level [debug/error/info]  
JkLogLevel info  
# Specify workers.properties, this file tell jk:  
# how many nodes and where they are.  
JkWorkersFile conf/workers.properties  
# Specify which requests should handled by which node.  
JkMount /* controller  

7、 配置mod_jk,描述集群节点。

在Apache的httpd.conf文件所在文件夹新建workers.properties文件,在该文件中写入如下内容:

#所有节点列表,其中controller是一个逻辑结点,负责负载均衡控制,  
#如果JkMount中的URL指定给了controller就表示这个请求会被自动散列到某个物理节点上。  
#注意:真正负责处理请求的tomcat的名称(这里就是tomcat1,tomcat2)必须于它们在conf/server.xml  
#文件中配置的jvmRout的属性值是一致的!  
worker.list = controller,tomcat01,tomcat02  
   
#========tomcat01========  
worker.tomcat01.port=8009       #ajp13 端口号,在tomcat下server.xml配置,默认8009  
worker.tomcat01.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址  
worker.tomcat01.type=ajp13  
worker.tomcat01.lbfactor = 1    #server的加权比重,值越高,分得的请求越多  
#========tomcat02========  
worker.tomcat02.port=8109       #ajp13 端口号,在tomcat下server.xml配置,默认8009  
worker.tomcat02.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址  
worker.tomcat02.type=ajp13  
worker.tomcat02.lbfactor = 1    #server的加权比重,值越高,分得的请求越多  
  
#========controller,负载均衡控制器========  
worker.controller.type=lb  
worker.controller.balance_workers=tomcat01,tomcat02   #指定分担请求的tomcat,旧版本中的balanced_workers,已不再推荐使用!  
worker.controller.sticky_session=1 #sticky_session为1表示,  
#当某一 client的session创建之后,后续由该客户端发起的请求,也就是这个session的所有请求都始终由第一次处理该请求的结点  
#负责处理(除非该结点挂掉)
至此,集群搭建完成。

四、应用程序要为集群所做的准备

1. 在应用程序的web.xml中需要加入:<distributable/>元素
2. session中存放的数据(如attribute)必须实现序列化。


参考博客01:Linux下搭建tomcat集群

参考博客02: Tomcat集群配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值