2013年1月18日 星期五

Study Note : HAProxy


Concept

Related Technology

Nginx
*HAProxy
Apache2
Squid
Linux Virtual Servers (LVS)
Pure 負載均衡器(PLB)
Pound
Pen
Varnish

HAProxy

HAProxy 是一套快速以及靈活的load balance套件,透過haproxy可以快速達到server分流、判斷存活、連線數量等功能。當流量達到一定的程度後load balance是一大重點,如何讓各server平均去負擔流量是相當重要的,透過haproxy可以簡單快速的達成load balance。
pros
1.支援session keep alive
2.透過指定的url檢查後端伺服器的狀態
3.支援tcp協定的負載平衡,譬如:可以給mysql伺服器、mail server郵件伺服器做負載平衡
cons
1.不支援虛擬主機 (更改為支援虛擬主機)
2.目前沒有支援 nagios(註2) 和 cacti (註3)的網路監控功能
註2:Nagios 為提高效能和準確性的網路監控軟體(詳細)
註3:Cacti 是一套類似 MRTG 的snmp流量監控跟系統資訊監控軟體,除此 Cacti 還可以外掛 Script 及 Templates作出各種的監控圖 ,有興趣的網友可以參考 CaCti官網 的說明

Installation

tar -xvf haproxy-1.3.15.7.tar.gz
cd haproxy-1.3.15.7
make TARGET=linux26
cp haproxy /usr/local/sbin/
setting the rule for HAProxy (for example:our the Hinet server)
"haproxy.conf"
global
        log 127.0.0.1   local0
        maxconn 1500
        #hroot  C:\cygwin\home\prada.hsiung\haproxy-1.3.15.1\
        uid haproxy
        gid haproxy
        #deamon
        nbproc  2
        pidfile C:\cygwin\home\prada.hsiung\haproxy-1.3.15.1\haproxy.pid
 
defaults
        log     127.0.0.1       local3
        mode    http
        option  httplog
        option  httpclose
        option  dontlognull
        option  forwardfor
        option  redispatch
        retries 2
        maxconn 2000
        balance roundrobin
        stats enable
        stats uri /hastats
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
 
frontend web-balancer
        bind    *:80 #test:8000
        #acl is_bbs path_beg /bbs
        acl is_opensource hdr_dom(host) -i opensource
 
        use_backend backend_opensource if is_opensource
 
        default_backend backend_yahoo
 
backend backend_yahoo
        server          web01 tw.yahoo.com weight 5 check
backend backend_opensource
        server          web04 192.168.92.35:80 weight 5 check
running
./haproxy -f haproxy.conf

Scaling Design

we find suggestion on internet:
nginx (for HTTP compression) --> Varnish cache (for caching) --> HTTP level load balancer (HAProxy, or nginx, or the Varnish built-in) --> webservers.
Component:
Front-end-Server(Nginx)
Back-end-Server (Apache|Tomcat)
Cacher (Varnish)
Load balancer (HAProxy)
System Structure
...coming soon...

Reference

沒有留言:

張貼留言