負(fù)載均衡haproxy的安裝配置
HAProxy是一款提供高可用性、負(fù)載均衡以及基于TCP和HTTP應(yīng)用的代理軟件,HAProxy是完全免費的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP應(yīng)用的代理解決方案。HAProxy適用于那些負(fù)載較大的web站點,這些站點通常又需要會話保持或七層處理。 HAProxy可以支持?jǐn)?shù)以萬計的并發(fā)連接,并且HAProxy的運行模式使得它可以很簡單安全的整合進(jìn)架構(gòu)中,同時可以保護(hù)web服務(wù)器不被暴露到網(wǎng)絡(luò)上。
它在7層負(fù)載均衡方面的功能很強大(支持cookie track, header rewrite等等),支持雙機熱備,支持虛擬主機,擁有非常不錯的服務(wù)器健康檢查功能,當(dāng)其代理的后端服務(wù)器出現(xiàn)故障, HAProxy會自動將該服務(wù)器摘除,故障恢復(fù)后再自動將該服務(wù)器加入;同時還提供直觀的監(jiān)控頁面,可以清晰實時的監(jiān)控服務(wù)集群的運行狀況。
新的1.3版本引入了frontend,backend配置段, frontend根據(jù)任意HTTP請求頭內(nèi)容做規(guī)則匹配,然后把請求定向到相關(guān)的backend,通過ACL可以實現(xiàn)類似與F5的irules的功能。功能非常強大。目前haproxy支持以下5種負(fù)載均衡算法,同時也支持通過weight來實現(xiàn)負(fù)載比率的調(diào)整和通過cookie來實現(xiàn)連接保持。
1. 輪詢 roundrobin
2. 最少連接數(shù) Leastconn
3. 根據(jù)源IP source
4. 根據(jù)URI uri
5. 根據(jù)URL里的參數(shù) url_param(根據(jù)請求串中的數(shù)據(jù)hush后做lb,譬如需要一個userid永遠(yuǎn)在某臺服務(wù)器上,該策略是靜態(tài)的)
部署haproxy
1、安裝
# wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.20.tar.gz
# tar zcvf haproxy-1.4.20.tar.gz
# cd haproxy-1.4.20
# make TARGET=linux26 ARCH=x86_64
# make install PREFIX=/usr/local/haproxy
2、配置
mkdir /usr/local/haproxy/conf
vi /usr/local/haproxy/conf/haproxy.cfg
global
log 127.0.0.1 local0
maxconn 65535 #最大連接數(shù)
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#debug
#quiet
nbproc 1 #負(fù)載均衡的并發(fā)進(jìn)程數(shù)
pidfile /var/run/haproxy.pid
defaults
log global
mode http #工作模式,目前支持3種(tcp/http/health)
option httplog #日志類別
option dontlognull
option redispatch #當(dāng)serverid對應(yīng)的服務(wù)器宕機后,強制定向到其他健康的服務(wù)器上
log 127.0.0.1 local0
retries 3 #重試次數(shù)
maxconn 32000
stats enable
stats uri /haproxy-stats
stats realm Haproxy\ Statistics #提示信息
stats auth admin:admin #用戶認(rèn)證/用戶名、密碼
stats hide-version #隱藏版本信息
stats refresh 10s #刷新時間
contimeout 5000 #超時時間
clitimeout 50000
srvtimeout 50000
listen appserver *:80
hash-type consistent
balance uri len 100
option httpclose #啟用被動的http連接關(guān)閉
option httpchk HEAD /do_not_delete/noc.gif HTTP/1.0 #健康檢測
server img_web_01 192.168.11.51:80 cookie 10 weight 3 check inter 2000 rise 2 fall 3
server img_web_02 192.168.11.52:80 cookie 20 weight 3 check inter 2000 rise 2 fall 3
server img_web_03 192.168.11.53:80 cookie 30 weight 3 check inter 2000 rise 2 fall 3
haproxy啟動
/usr/local/haproxy/sbin/haproxy –f /usr/local/haproxy/conf/haproxy.cfg
重啟服務(wù)
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg -st `cat /var/run/haproxy.pid`
Web界面查看

【編輯推薦】