注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

0与1构筑世界,程序员创造时代

软件架构设计 Java编程

 
 
 

日志

 
 

Apache+mod_jk+Tomcat/Glassfish负载均衡配置  

2008-11-20 18:21:51|  分类: Apache |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

说明:这里是用Apache做前端的负载分配器,一个tomcat和一个glassfish作后端的处理器。tomcat的AJP监听端口是8010,glassfish的AJP监听端口是8009。

预备

Apache 1.3.33 (已经安装并配置好)
Tomcat 6.0.18 / Glassfish V2 (已经安装并配置好)

配置

1、打开%APACHE_HOME/conf/httpd.conf。
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/work_balance.properties

JkLogFile logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

JkMount /hello/* loadbalancer

2、打开%APACHE_HOME/conf/work_balance.properties(如果不存在,则新建此文件)。配置内容如下:
# Define 1 real worker using ajp13
worker.list=loadbalancer

# Set properties for worker_glassfish.(ajp13)
worker.worker_glassfish.type=ajp13
worker.worker_glassfish.host=127.0.0.1
worker.worker_glassfish.port=8009
worker.worker_glassfish.lbfactor=50
worker.worker_glassfish.cachesize=10
worker.worker_glassfish.cache_timeout=600
worker.worker_glassfish.socket_keepalive=1
worker.worker_glassfish.socket_timeout=300

# Set properties for worker_tomcat. (ajp13)
worker.worker_tomcat.type=ajp13
worker.worker_tomcat.host=127.0.0.1
worker.worker_tomcat.port=8010
worker.worker_tomcat.lbfactor=50
worker.worker_tomcat.cachesize=10
worker.worker_tomcat.cache_timeout=600
worker.worker_tomcat.socket_keepalive=1
worker.worker_tomcat.socket_timeout=300

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker_glassfish,worker_tomcat

说明:
  • worker.list=loadbalancer:设定工作的负载平衡器,各Tomcat节点不能加入此列表。
  • worker.<work_name>.lbfactor:负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。
  • worker.loadbalancer.balanced_workers=worker_glassfish,worker_tomcat:指定此负载平衡器负责的Glassfish节点和Tomcat节点。
  • worker.loadbalancer.sticky_session =true:此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。
  • worker.loadbalancer.sticky_session_force =true:如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果负载均衡群中某台服务器在多次请求没有响应后,是否将当前的请求,转发到其它服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它 服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。
注意:sticky_session 和 sticky_session_force 设置为true时,还需要对Tomcat进行特别配置,仅对tomcat有效。


验证

打开浏览器,输入URL,进行多次请求,会发现有时请求被转发到Tomcat,有时被转发至Glassfish。如下面两个图的所示:
Apache+mod_jk+Tomcat/Glassfish负载均衡配置 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来
请求转发至Glassfish
 
Apache+mod_jk+Tomcat/Glassfish负载均衡配置 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来
 请求转发至Tomcat

参考资料

1、http://tomcat.apache.org/connectors-doc/reference/workers.html

<正文结束>
文章声明


作者:傲风(aofengblog@163.com)       编写时间:2008年11月20日

网址:http://aofengblog.blog.163.com

作者保留所有权利,转载请保留文章全部内容或者说明原作者和转载地址!

  评论这张
 
阅读(1773)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017