Apache负载均衡
一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高高可用。
必须有此模块:
LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_balancer_module modules/mod_proxy_balancer.so
1.普通负载:
ProxyRequestsoff
<Proxybalancer://server3.example.com>
BalancerMember http://192.168.88.128:80
BalancerMember http://192.168.88.129:80
</Proxy>
ProxyPass /test balancer://server3.example.com/
#这里访问server3.example.com/test可以访问到,之所以这样加上test,是为了不与下面访问/balancer冲突,不然访问/balancer也被分配到realserver上面
#以下是访问的状态web统计,生产环境不加为好
<Location/balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Allow from all
</Location>
2.权重负载:
ProxyRequestsoff
<Proxybalancer://server3.example.com>
BalancerMember http://192.168.88.128:80loadfactor=8
BalancerMember http://192.168.88.129:80loadfactor=1
</Proxy>
3.其他负载算法:
ProxyRequestsoff
<Proxybalancer://server3.example.com>
BalancerMember http://192.168.88.128:80loadfactor=8
BalancerMember http://192.168.88.129:80loadfactor=1
</Proxy>
ProxyPass /test balancer://server3.example.com/ lbmethod=bytraffic
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
4.热备
热备份的实现很简单,只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器,访问一直都在192.168.88.128,只有它挂了,才会到129上。
<Proxybalancer://server3.example.com>
BalancerMember http://192.168.88.128:80loadfactor=8
BalancerMember http://192.168.88.129:80loadfactor=1 status=+H
</Proxy>