apache的负载均衡配置

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

[b]Apache2.2\conf\httpd.conf[/b]

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

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

[b]2. 配置负载参数[/b]

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

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

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

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

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

<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=[b]JSESSIONID[/b]

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

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

注意JSESSIONID区分大小写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值