HAproxy實現4層和7層的負載均衡

特點:
1)原生的SSL支持,同時支持客戶端和服務端的SSL
2)支持HTTP keep-alive
3) 支持HTTP1.1壓縮,以節省帶寬
4)支持優化的健康檢查機制
5)支持7層負載均衡

與lvs區別?
1)Haproxy不需要後端服務都指向負載均衡的內網地址,這個與lvs-nat區別。
2)Haproxy不需要後端服務器與負載均衡處於同一個網段,這個與lvs-DR區別。
3)Haproxy不需要後端服務器配置IPIP隧道,這個與lvs-tun模式不同。
4)Haproxy僅僅要求後端服務能夠在網上連通,可以跨網段。

1、 四層Haproxy的配置

cat /etc/haproxy/haproxy.cfg
global
    maxconn 4000
    daemon
defaults
    mode http

listen test1 
    bind 0.0.0.0:80 
    mode tcp             #注意,此處是tcp
    balance leastconn
    server s1 166.110.110.1:80 
    server s2 166.110.110.2:80

2、 七層Haproxy的配置
cat /etc/haproxy/haproxy.cfg
global  
       log 127.0.0.1   local3  
       maxconn 4096
       uid 502 
       gid 502
       daemon  
       nbproc 1  
       pidfile /home/haproxy/logs/haproxy.pid  

    defaults  
       log     global 
       mode    http  
       option  httplog  
       option  dontlognull  
       option  forwardfor  
       option  redispatch 
       log     127.0.0.1 local3
       retries 3  
       maxconn 32000  
       balance roundrobin  
       stats   uri     /haproxy-stats  
       contimeout      5000  
       clitimeout      50000  
       srvtimeout      50000  
    
  listen web_proxy *:80
       appsession JSESSIONID len 52 timeout 3h
       #插入cookie的方式
       cookie SRV insert indirect nocache
       #模式有http tcp health
       mode http
       stats enable
       stats hide-version
       #查看狀態
       stats uri /haproxy-stats
       stats refresh 10s
       monitor-uri /haproxy_test
       #負載均衡方案:輪調
       balance roundrobin
       option httpclose
       #後端可以獲取客戶端的真實ip
       option forwardfor
       #健康檢查
       option httpchk HEAD /login HTTP/1.0
       #option  httpchk GET /ping.jsp 
       #後端真實服務
       server  webA 192.168.1.226:8081 cookie A check  
       server  webB 192.168.1.246:8888 cookie B check


3、 配置參數說明:
mode {tcp|http|health}:
tcp:該實例運行在純TCP模式下
http:該實例運行在HTTP模式下,被調度到後端服務器之前,會被深度分析,可以實現7層過濾。

balance:[roundrobin,static-rr,leastconn,source]
roundrobin:輪詢
static-rr:輪詢,在線修改權重時不生效。
leastconn:最小連接數
source:基於客戶端來源的哈希算法

4、 haproxy的會話保持功能
會話保持:保證同一個客戶端的連接的請求被持續的調度到一臺後端的服務器的過程。
業務場景:
1)購物車  
2)訪問登錄後的內容
haproxy有2種基本方法:
1)基於源地址的負載均衡調度
balacne source
2)基於cookie的技術
cookie appsession insert indirect  preserve
haproxy在第一次響應中插入到後端服務器給客戶端的響應的cookie名字,如果haproxy發現用戶的請求中發現該cookie,就可以找到該後端主機。

5、TCP四層與HTTP七層請求的區別
1)TCP四層一般是在客戶端與Haproxy完成3次握手以後,然後haproxy發送一個syn報,要求與後端的服務器建立TCP連接。
2)HTTP七層一般是在客戶端與Haproxy完成3次握手以後,客戶端在發送了HTTP以後,才由haproxy於後端服務器建立TCP連接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章