Haproxy下載地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=1829018343
也可用wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
[root@A local]# yum install -y gcc [root@A local]# tar zxvf haproxy-1.4.24.tar.gz [root@A local]# cd haproxy-1.4.24 [root@A haproxy-1.4.24]# make install [root@A haproxy-1.4.24]# mkdir -p /usr/local/haproxy/etc [root@A haproxy-1.4.24]# mkdir -p /usr/local/haproxy/sbin [root@A haproxy-1.4.24]# cp examples/haproxy.cfg /usr/local/haproxy/etc [root@A haproxy-1.4.24]# ln -s /usr/local/sbin/haproxy /usr/local/haproxy/sbin/haproxy [root@A haproxy-1.4.24]# vi /usr/local/haproxy/etc/haproxy.cfg
global log 127.0.0.1 local0
maxconn 4096 #最大連接數
chroot /usr/local/haproxy
uid 99 #所屬運行的用戶UID
gid 99 #所屬運行用用戶組
daemon #以后台形式運行HAProxy nbproc 1 #啟動1個實例,可以啟多個來提高效率
defaults log global mode http option httpclose #每次請求完畢后主動關閉http通道
option redispatch #當serverId對應的服務器掛掉后,強制定向到其他健康的服務器 option forwardfor #
option abortonclose #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的鏈接
option dontlognull #保證HAProxy不記錄上級負載均衡發送過來的用於檢測狀態沒有數據的心跳包
retries 2 maxconn 2000 balance source #如果想讓HAProxy按照客戶端的IP地址進行負載均衡策略,即同一IP地址的所有請求都發送到同一服務器時,需要配置此選項
contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web_proxy 10.10.3.163:80 mode http server web1 10.10.3.13:8817 cookie app1inst1 check inter 2000 rise 2 fall 5 server web2 10.10.3.151:8400 cookie app1inst2 check inter 2000 rise 2 fall 5 listen scoket_proxy 10.10.3.163:12315 mode tcp server scoket1 10.10.3.158:12315 check inter 2000 rise 2 fall 5 server scoket2 10.10.3.10:12315 check inter 2000 rise 2 fall 5 listen admin_stats bind *:1080 #監聽端口 mode http #http的7層模式 option httplog #采用http日志格式 log 127.0.0.1 local0 err maxconn 10 stats refresh 30s #統計頁面自動刷新時間 stats uri /stats #統計頁面url stats realm XingCloud\ Haproxy #統計頁面密碼框上提示文本 stats auth admin:admin #統計頁面用戶名和密碼設置 stats hide-version #隱藏統計頁面上HAProxy的版本信息
啟動Haproxy
haproxy -f /usr/local/haproxy/etc/haproxy.cfg
停止Haproxy
killall haproxy
訪問
http://10.10.3.163:1080/stats
配置直接重定向URL
現在HAProxy的算法也非常多,並不比專業的F5/LVS算法少,常用的算法有如下8種:
balance roundrobin,表示簡單的輪詢,建議關注;
balance static-rr,表示根據權重,建議關注;
balance leastconn,表示最少連接者先處理,建議關注;
balance source,表示根據請求源IP,跟Nginx的ip_hash算法相似,建議關注;
balance uri,表示根據請求的URI;
balance url_param,表示根據請求的URl參數;
balance hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;
balance rdp-cookie(name),表示根據據cookie(name)來鎖定並哈希每一次TCP請求。