负载均衡做好时候,测试过程中没有问题,测试页面正常跳转,但是工程项目放到负载均衡上出现了请求每隔一段时间会出现自动刷新的情况,最后发现负载均衡配置中出现了问题;

顺便贴出httpd.conf中的配置

LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JKWorkersFile  /usr/local/apache2/conf/workers.properties
JKMountFile    /usr/local/apache2/conf/uriworkermap.properties
JKLogFile       /usr/local/apache2/logs/mod_jk.log
JKLogLevel  info
JKLogStampformat  "[%a %b %d %H:%M:%S  %Y]"
</IfModule>

workers.properties中配置

worker.list =loadBalanceServers,jk_watcher
#========tomcat1==========
worker.tomcat1.port=8009
worker.tomcat1.host=10.5.121.200
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1

#========tomcat2==========
worker.tomcat2.port=8009
worker.tomcat2.host=10.5.121.118
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

#========controller,负载均衡控制器==========
worker.loadBalanceServers.type=lb
worker.loadBalanceServers.balanced_workers=tomcat1,tomcat2
worker.loadBalanceServers.sticky_session=true
worker.jk_watcher.type=status
worker.jk_watcher.mount=/admin/jk
worker.retries=3
worker.loadBalanceServers.sticky_session参数详解

设置负载均衡是否采用粘性会话。如果该属性设置为true,假设一个请求被s1处理了,下次来源于同一个客户端的请求也将被s1处理。直到s1已经达到最大连接数,JK才会将会话切换到其他服务器上。但是如果恰巧一直负责处理该会话的服务器down掉了,则会话将会丢失,明显的故障现象就是关于session的操作会出现莫名其妙的错误(例如你所运行的应用中用户可能已经登录了,但突然在一次访问后莫名其妙地提示没有登录)。这里配置为false,不启用粘性会话,让服务器都有机会处理请求,提高了系统的稳定性

uriworkermap.properties中的配置

/*=loadBalanceServers

图片因为都在项目目录下,此处没有做动静分离的修改


到此,修改结束!

文中部分内容来自 http://blog.csdn.net/chaijunkun/article/details/6987443