[转]apache的负载均衡配置

来源:http://steven2011.iteye.com/blog/1296588

下载: http://httpd.apache.org/ (使用2.2版本进行测试) 
文档: http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html 

Apache2.2\conf\httpd.conf 

1. 启用需要的模块 (找到相应的模块,取消注释即可) 

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 

#这个是用于新建cookie做session sticky用的,如果使用已有的web server的cookie如JSESSIONID则不需要启用。 
LoadModule headers_module modules/mod_headers.so 

2. 配置负载参数 

/test:代理路径 
lbmethod:目前有三种选择,byrequests,bytraffic,bybusyness 
route:负载成员的标识名,用于做session sticky 
Header:如下配置语义是指当临时变量BALANCER_ROUTE_CHANGED被设置也就是初次建立连接或是上次负载服务器宕掉切换负载服务器的时候,创建cookie名叫ROUTEID,值为.后加配置的route值,如Set-Cookie ROUTEID=.node1 
stickysession:session标识cookie名 

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
<Proxy balancer://cluster_test> 
BalancerMember http://192.168.1.6:8000/test loadfactor=3 route=node1 
BalancerMember http://192.168.1.6:9000/test loadfactor=1 route=node2 
</Proxy> 
ProxyPass /test balancer://cluster_test lbmethod=byrequests stickysession=ROUTEID 

还有以下几个属性可以配置: 
nofailover 默认是off,表示开启失效转移功能,关闭(on)的话如果所选负载成员宕掉,会返回503 Service Temp Unavaliable错误 

failonstatus可以指定哪些负载成员响应HTTP状态码可以视为负载成员宕掉,如404,500等,默认只视连接错误为负载成员宕掉 

注意如果apache判定负载成员宕掉,默认1分钟后会重新尝试使用之前宕掉的负载成员。 
而且对于failonstatus这种情形,只有下次请求的时候才会做到失效转移,第一次还是会给客户端发回对应的错误信息如500或404。 

补充:我们也可以使用负载成员服务器自带的session cookie如JSESSIONID,以下是针对tomcat的配置。 
Apache2.2\conf\httpd.conf 

<Proxy balancer://cluster_test> 
BalancerMember http://192.168.1.6:8000/test loadfactor=3 route=node1 
BalancerMember http://192.168.1.6:9000/test loadfactor=1 route=node2 
</Proxy> 
ProxyPass /test balancer://cluster_test lbmethod=byrequests stickysession=JSESSIONID 

apache-tomcat-6.0.18\conf\server.xml 
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">   

这样 JSESSIONID的值后面就会加上.node1或是.node2如 
JSESSIONID=3E5F7CC704192E0BFBAF1190A1EF513A.node1 

注意JSESSIONID区分大小写。 

posted @ 2012-02-08 14:44  $walker  阅读(2251)  评论(0编辑  收藏  举报