萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 資訊安全防護

HAProxy 生產環境核心配置詳解:balance source 會話保持、健康檢查與 8 大負載演算法選型

HAProxy 配置項雖多,生產環境常用核心段落有限。本文解析實戰配置範例,並深入比較 8 種負載均衡演算法適用場景。

實戰配置範例解析

global
    log 127.0.0.1 local0
    maxconn 4096
    chroot /usr/local/haproxy
    uid 99
    gid 99
    daemon
    nbproc 1
    pidfile /usr/local/haproxy/logs/haproxy.pid
    debug

defaults
    log 127.0.0.1 local3
    mode http
    option httplog
    option httpclose
    option dontlognull
    option forwardfor
    option redispatch
    retries 2
    maxconn 2000
    balance source
    stats uri /haproxy-stats
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000

listen 1paituan_proxy
    bind 203.93.236.149:80
    option httpchk HEAD /index.jsp HTTP/1.0
    server web1 203.93.236.147:80 cookie app1inst1 check inter 2000 rise 2 fall 1
    server web2 203.93.236.146:80 cookie app1inst2 check inter 2000 rise 2 fall 1

關鍵配置說明

  • balance source:依客戶端 IP 雜湊分發,確保同一客戶端始終命中同一後端(會話保持),對應 LVS persistent、Nginx ip_hash。
  • bind 203.93.236.149:80:VIP 位址(由 Keepalived 浮動),單一入口對外服務。
  • option httpchk HEAD /index.jsp HTTP/1.0:健康檢查機制,後端需回應 2xx/3xx,否則標記 DOWN(產生 503)。
  • cookie app1inst1/2:插入 Cookie 實現應用層會話保持(備援 source 雜湊失效場景)。
  • check inter 2000 rise 2 fall 1:每 2 秒檢查一次,連續 2 次成功視為 UP,1 次失敗視為 DOWN,快速故障切換。

Syslog 整合

# /etc/syslog.conf
local3.* /var/log/haproxy.log
local0.* /var/log/haproxy.log

# /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-r -m 0"
service syslog restart

8 大負載均衡演算法比較

演算法機制適用場景注意事項
roundrobin輪詢,依權重分配無狀態服務、後端效能均勻最基礎,預設演算法
static-rr靜態權重輪詢(啟動時計算,運行期不動態調整)後端效能固定、需精確權重控制權重變更需重載
leastconn最少連線優先長連線、處理時間不均(如上傳、串流、WebSocket)需啟用 option httpchk 避免死連線干擾
source客戶端 IP 雜湊需會話親和性、無共享 Session 存儲NAT 環境下客戶端 IP 相同會導致分發不均
uri請求 URI 雜湊緩存代理場景,同一 URI 命中同一後端提高命中率需配合 hash-type consistent 減少節點變動重分發
url_param指定 URL 參數值雜湊(balance url_param userid)依用戶 ID/會話 ID 分發,精確會話親和參數缺失時回退 roundrobin
hdr(name)HTTP 標頭值雜湊(如 hdr(Authorization))API 閘道、OAuth Token 路由標頭缺失時回退 roundrobin
rdp-cookie(name)RDP Cookie(mstshash)雜湊RDP 閘道/負載均衡,確保同一用戶連同一後端僅適用 RDP 協定

架構演進建議

  • 單點 HAProxy → HAProxy + Keepalived/VRRP 雙機熱備(VIP 漂移)。
  • 大流量場景:DNS 輪詢 + 多組 HAProxy 集群,或上層接入 L4 負載均衡(LVS、云負載均衡)。
  • 啟用 多進程:nbproc N(N = CPU 核心數),配合 cpu-map 綁核,突破單進程瓶頸。
  • 監控整合:Prometheus + haproxy_exporter 抓取 /haproxy-stats;csv,Grafana 儀表板監控 qcur、qmax、scur、hrsp_5xx、ereq、eresp。
淘寶早期大規模採用 HAProxy,穩定性經大規模驗證。殺掉進程需 kill -9,說明進程韌性極強;生產環境建議配合 systemd 管理,啟用 Restart=on-failure。
copyright © 萬盛學電腦網 all rights reserved