linux下apache+tomcat做负载均衡时复制session功能

2017/06/23 19:15
阅读数 30

在/apache/conf/httpd.conf文件里最后一行,加入

 

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass / balancer://tomcatcluster/ stickysession=STICK_PORT_TOKEN nofailover=On

<Proxy balancer://tomcatcluster>
BalancerMember AJP://192.168.1.101:8009 route=tomcat1 loadfactor=1
BalancerMember AJP://192.168.1.102:9009 route=tomcat2 loadfactor=1
</Proxy>


两个tomcat的/conf/server.xml

 

 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

 

 

使用mod_jk做负载均衡:

没有使用session复制

 

Mod_jk:tomcat-connectors-1.2.32-src.tar.gz

安装mod_jk模块

# cd /usr/local/src/ #进入下载目录

# tar zxvf tomcat-connectors-1.2.30-src.tar.gz #解压缩

# cd tomcat-connectors-1.2.30-src #进入目录

# cd native/ #进入native

# pwd #查看绝对路径

/usr/local/src/tomcat-connectors-1.2.30-src/native

#./configure --with-apxs=/usr/local/apache2/bin/apxs          #指定apxs路径,apxs

]# make #编译,但是不需要安装,我们需要的只是mod_jk.so模块而已,这一步已经生成了。但是我不知道它生成的位置,使用find查找

#find /usr/local/src/tomcat-connectors-1.2.30-src -name mod_jk.so        #在指定路径下查找名为mod_jk.so的文件

/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/.libs/mod_jk.so

/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/mod_jk.so

#cp -ar apache-2.0/mod_jk.so  /usr/local/apache2/modules/ # 找到mod_jk后拷贝到apache目录中的module下。

修改apache的httpd.conf 配置文件

#在文件末尾添加以下代码

LoadModule jk_module modules/mod_jk.so

Include conf/mod_jk.conf

在conf下新建workers.properties文件

###############worker lists###########

worker.list=controller,status     # worker列表

###########the fist server named by s1########

#第一个server的配置,server名为s1

#ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.s1.port=8009  

#tomcat的主机地址,如不为本机,请填写ip地址

worker.s1.host=192.168.6.251 

worker.s1.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.s1.lbfactor=1

###########the second server named by s2########

worker.s2.port=9009

worker.s2.host=192.168.6.251

worker.s2.type=ajp13

worker.s2.lbfactor=1

##############################################

worker.controller.type=lb

worker.retries=3

#指定分担请求的server列表,用逗号分隔

worker.controller.balanced_workers=s1,s2

worker.controller.sticky_session=1

worker.status.type=status

 

说明:此处指定集群是否需要会话复制,如果设为1,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为0,则表明需求会话复制。

在conf下新建mod_jk.conf配置

JkWorkersFile conf/workers.properties       

JkMount /* controller

JkLogFile logs/mod_jk.log     #记录日志

JkLogLevel info             #日志级别

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"   #日志格式

JkRequestLogFormat "%w %V %T"

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部