安裝HAproxy,先用命令檢查內核系統的版本,這裏red hat5.5的內核爲2.6

[[email protected] ~]# uname -a
Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
[[email protected] setup]# tar zxf haproxy-1.4.21.tar.gz 
[[email protected] setup]# cd haproxy-1.4.21
[[email protected] haproxy-1.4.21]# make TARGET=linux26 PREFIX=/usr/local/haproxy
[[email protected] haproxy-1.4.21]# make install PREFIX=/usr/local/haproxy



配置文件介紹:

global
     log 127.0.0.1 local0 notice    //local0是日誌設備,info是日誌記錄級別(err,warning,info,debug),可以在系統日誌裏查看      
     maxconn 5535         //HAproxy接受的最大連接數,還要注意linux文件接受的最大連接數,用命令"ulimit -n"看以查看,在/etc/security/limit.conf可以永久修改。       
    chroot /usr/local/haproxy  //    
     user nobody  //進程用查看戶
     group nobody  //進程組
     nbproc 1    //進程可以創建的進程數,建議小於服務器的cpu數           
     daemon          //後臺運行            
defaults
    option httplog  //記錄http日誌
    mode http   //http模式,不與RFC格式兼容的請求都會被拒絕,還有TCP模式作爲4層轉發,多用於SSL,SSH,SMTP
    option dontlognull
    retries 3     //連接失敗後重試此樹                    
    maxconn 5535                     
    timeout connect       5s  //連接後端服務器的最長等待時間
    timeout server            30s     //服務端迴應客戶端數據發送的最長等待時間
    timeout client              30s    //連接客戶端發送數據的最長等待時間
    timeout check 5s                //每5s檢驗一次後端服務器
    stats refresh 30s   //後端服務器健康狀態刷新時間                  
    stats uri  /stats       //通過瀏覽器可以查看業務狀態,例如:www.dragon.com/stats             stats realm baison-test-Haproxy       
    stats auth admin:dragon123   //查看信息時的帳號密碼驗證       
    stats hide-version      //不顯示haproxy的版本信息
frontend www
    bind :80
    #acl 自定義名稱 acl方法  -i  [匹配內容]  //-i表示不區分大小寫
    acl host_web hdr_reg(host) -i ^(www.dragon.com|dragon)   //匹配域名爲"www.dragon.com"或者"dragon.com"的請求
   acl blog hdr(host) -i blog.dragon.com   // 匹配域名爲"www.dragon.com"的請求                use_backend webserver if host_web  //將匹配acl條目host_web的請求,分發給webserver
   use_backend blogserver if blog  ////將匹配acl條目blog的請求,分發給blogserver
                                                                                 
backend     webserver          
  mode http
  balance   roundrobin   //負載均衡算法爲論掉
  option    redispatch    //保持cookie環境,使客戶機的session持久連接。
  option    abortonclose     //在服務器高負載時,自動放棄隊列中處理時間較長的連接
  option  httpchk GET /index.html   //通過請求後端http服務的頁面,判斷狀態
  server     web01 192.168.1.115:80  check inter 2000 rise 2  fall  3 weight 10  
  server     web02 192.168.1.116:80  check inter 2000 rise 2 fall 3 weight 10    
//集羣webserver裏有兩臺服務器處理請求                                                       //check:請用執行健康狀態檢查,inter:健康檢查時間間隔,默認單位毫秒。rise:從故障轉換至正常需要通過的健康檢查次數。fall:判定爲故障的檢查失敗次數。weight:後端服務器的權重,0爲不參與負載,默認爲1,最大值爲256.
                                                                                                                                           
backend blogserver
   mode http
   option  redispatch
   option  abortonclose
   option  httpchk GET /index.html
   balance     roundrobin                          
   server     blog01 192.168.1.117:80  check inter 2000 rise 2 fall 3 weight 10
   server     blog02 192.168.1.118:80  check inter 2000 rise 2 fall 3 weight 10


啓動haproxy:

[[email protected] ~]# cd /usr/local/haproxy/sbin/

[[email protected] sbin]# ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg



www.dragon.com被分發到192.168.1.115和192.168.1.116


wKioL1SDQLSBEb_MAALvW1PHV5c241.jpg




blog.dragon.com被分發到192.168.117和192.168.1.118

wKiom1SDQMqRl34QAANXWlyzH9I195.jpg


查看後端服務健康狀況:

wKioL1SDQLTje-6pAAgUjXBzYwA493.jpg

本文轉自:維斯亞綜合論壇:http://www.w4ya.com/forum.php