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>