首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

apache+tomcat负载平衡配备

2012-06-27 
apache+tomcat负载平衡配置apache 和 tomcat 连接有三种方式 :1.JK ,2 .http_proxy ,3. ajp_proxy 。之前看

apache+tomcat负载平衡配置
apache 和 tomcat 连接有三种方式 :1.JK ,2 .http_proxy ,3. ajp_proxy 。之前看到robbin在一个帖子里说jk的连接方式已经淘汰了,貌似apache官网还是有jk的更新,由于我们网站之前用的是jk, 所以暂时还是用jk的方式。有机会可以测试下jk 和ajp_proxy到底哪种方式更好些。根据这几天对apache的了解,我记录下JK的连接方式。装完apache和tomcat后,把mod_jd.so文件拷贝到apache/modules目录下,在httpd.conf中加一句LoadModule jk_module modules/mod_jk.so,告诉服务器装载jk模块。准备两个配置文件,workers.properties和uriworkermap.properties ,分别放在conf目录下。在httpd.conf里指明这两个文件的位置: <IfModule jk_module> JkWorkersFile conf/workers.properties JkMountFile conf/uriworkermap.properties JkLogFile logs/mod_jk.log </IfModule>workers.properties文件的内容如下:worker.list=loadbalancerworker.balaweb54_1.port=2009worker.balaweb54_1.host=localhostworker.balaweb54_1.type=ajp13worker.balaweb54_1.lbfactor=1worker.balaweb54_1.socket_keepalive=1worker.balaweb54_1.socket_timeout=0worker.balaweb54_1.retries=3worker.loadbalancer.type=lbworker.retries=3worker.loadbalancer.balance_workers=balaweb54_1worker.loadbalancer.sticky_session=trueworker.loadbalancer.sticky_session_force=false定义了一个名为balaweb54_1的worker,使用ajp13协议来通讯,apache连接tomcat的端口是2009,host=localhost表示监听2009端口的主机是本机,lbfactor定义负载平衡的权值,socket_keepalive这个值在web服务器和tomcat之间装有防火墙的时候需要用到,因为防火墙会丢掉处于inactive状态的连接,如果设置了这个值为true(默认为false)的话,操作系统会不断的发KEEP_LIVE信息给这个连接,这样的话,防火墙就不会丢掉这种处于inactive状态的连接,貌似这个属性对我们网站而言也用不上,用默认值就Ok了。socket_timeout:就不介绍了。上面还定义了一个type为lb的worker,表示有多个tomcat的时候,在多个tomcat之间均衡负载,这里只配置一个tomcat,这负载全给这个tomcat , sticky_session官网的解释:Specifies whether requests withSESSION ID's should be routed back to the same Tomcat worker. If sticky_session isset to True or 1 sessions are sticky, otherwise sticky_session is set to False. Setsticky_session to False when Tomcat is using a Session Manager which can persistsession data across multiple instances of Tomcat. sticky_session_force 的解释:Specifies whether requests with SESSION ID's forworkers that are in error state should be rejected. If sticky_session_force is setto True or 1 and the worker that matches that SESSION ID is in error state, client willreceive 500 (Server Error). If set to False or 0 failover on another worker will beissued with loosing client session. This directive is used only when youset sticky_session=True.“If set to False or 0 failover on another worker will be issued with loosing client session. This directive is used only when you set sticky_session=True.” 这句话不是很明白。貌似这两个值在只有一台tomcat服务器的时候,用默认值就Ok了。我觉得在只有一个tomcat的时候,这两个sticky的配置完全可以删掉。uriworkermap.properties文件的内容如下:/*.do=loadbalancer/*.jsp=loadbalancer/dwr/*=loadbalancer/servlet/*=loadbalancer!/*.shtml=loadbalancer!/*.html=loadbalancer!/*.js=loadbalancer!/*.css=loadbalancer!/*.jpg=loadbalancer!/*.gif=loadbalancerloadbalancer即workers文件里面定义的loadbalancer,/*.do ,/*.jsp , /dwr/* ,/servlet/* 这几个表示这样的动态请求交给loadbalancer处理,而shtml ,html ......这些不交给loadbalancer处理,即由apache处理,这就验证了开始说的,静态请求有apache处理,动态请求由tomcat处理,!/*.shtml=loadbalancer ,感叹号!表示 "非"的意思。

热点排行