負載均衡haproxy的安裝配置
HAProxy是一款提供高可用性、負載均衡以及基于TCP和HTTP應用的代理軟件,HAProxy是完全免費的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP應用的代理解決方案。HAProxy適用于那些負載較大的web站點,這些站點通常又需要會話保持或七層處理。 HAProxy可以支持數以萬計的并發連接,并且HAProxy的運行模式使得它可以很簡單安全的整合進架構中,同時可以保護web服務器不被暴露到網絡上。
它在7層負載均衡方面的功能很強大(支持cookie track, header rewrite等等),支持雙機熱備,支持虛擬主機,擁有非常不錯的服務器健康檢查功能,當其代理的后端服務器出現故障, HAProxy會自動將該服務器摘除,故障恢復后再自動將該服務器加入;同時還提供直觀的監控頁面,可以清晰實時的監控服務集群的運行狀況。
新的1.3版本引入了frontend,backend配置段, frontend根據任意HTTP請求頭內容做規則匹配,然后把請求定向到相關的backend,通過ACL可以實現類似與F5的irules的功能。功能非常強大。目前haproxy支持以下5種負載均衡算法,同時也支持通過weight來實現負載比率的調整和通過cookie來實現連接保持。
1. 輪詢 roundrobin
2. 最少連接數 Leastconn
3. 根據源IP source
4. 根據URI uri
5. 根據URL里的參數 url_param(根據請求串中的數據hush后做lb,譬如需要一個userid永遠在某臺服務器上,該策略是靜態的)
部署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 #最大連接數
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#debug
#quiet
nbproc 1 #負載均衡的并發進程數
pidfile /var/run/haproxy.pid
defaults
log global
mode http #工作模式,目前支持3種(tcp/http/health)
option httplog #日志類別
option dontlognull
option redispatch #當serverid對應的服務器宕機后,強制定向到其他健康的服務器上
log 127.0.0.1 local0
retries 3 #重試次數
maxconn 32000
stats enable
stats uri /haproxy-stats
stats realm Haproxy\ Statistics #提示信息
stats auth admin:admin #用戶認證/用戶名、密碼
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連接關閉
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
重啟服務
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg -st `cat /var/run/haproxy.pid`
Web界面查看

【編輯推薦】