Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

HAProxy 負載均衡完整配置指南:核心參數、8 大演算法與 Keepalived 高可用架構實戰

編輯:關於伺服器

HAProxy 核心配置檔解析 (生產環境精簡版)

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 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

關鍵配置項說明

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

HAProxy 八大負載均衡演算法完整對比

參數說明
balance source依來源 IP 雜湊分發,同一 Client 固定後端 (類 Nginx ip_hash、LVS persistent)
203.93.236.149VIP (虛擬 IP),由 Keepalived 浮動綁定
option httpchk HEAD /index.jsp健康檢查:若後端無 index.jsp 則判定下線 (回 503)
cookie app1inst1植入 Cookie 維持 Session 親和性
check inter 2000 rise 2 fall 1每 2 秒檢查,2 次成功上線,1 次失敗下線
演算法英文關鍵字原理適用場景關注度
輪詢roundrobin循序分發,權重可調無狀態服務、節點效能相近⭐⭐⭐ 基礎必會
加權輪詢static-rr依權重比例分發後端效能差異大⭐⭐⭐ 推薦
最少連線leastconn分發給當前連線最少節點長連線、請求處理時間不均⭐⭐⭐ 推薦
來源 IP 雜湊sourceClient IP 固定後端需 Session 親和、無共享 Session 架構⭐⭐⭐ 推薦
URI 雜湊uri依請求 URI 分發快取分片、同一資源固定節點⭐⭐
URL 參數分發url_param依指定查詢參數值分發特定業務邏輯分片 (如 user_id)⭐⭐
HTTP Header 分發hdr(name)依指定 Header 值分發API 版本路由、租戶隔離⭐⭐
Cookie 分發rdp-cookie(name)依 Cookie 值雜湊分發TCP 層 Session 親和 (RDP/資料庫代理)⭐

作者實戰選型心得

  • 最常用:roundrobin、source、leastconn — 覆蓋 90% 場景
  • 避坑:url_param、hdr() 需確保 Header/參數一定存在,否則分發失效

HAProxy + Keepalived 高可用架構演進

架構對比歷程

階段架構問題解決
1LVS + Keepalived手機/部分電腦存取極慢、轉發延遲高改用 Nginx + Keepalived
2Nginx + Keepalived轉發快、手機正常、東莞客戶驗證成功作為標準方案推廣
3HAProxy + Keepalived (本文)功能更專注負載均衡、支援更多演算法、統計介面完整第二套方案,備選/特定場景

HAProxy 進階特性驗證

  • 支援虛擬主機:可透過 acl + use_backend 實現 Host 基礎路由
  • 正則處理能力:不如 Nginx 靈活,建議後端掛 Nginx 處理 rewrite/靜態/SSL 終止
  • 進程級高可用:未部署雙主,單進程極穩定 (測試需 kill -9 才能終止)

推薦混合架構

Client → Keepalived (VIP) → HAProxy (L4/L7 LB) → Nginx (SSL/Static/Rewrite) → App Server (Tomcat/PHP-FPM)
  • HAProxy 專注負載分發與健檢
  • Nginx 專注 Web 邊緣處理
  • 兩者分工明確,效能最優

選型建議:純 L7 HTTP 負載均衡、需豐富演算法與統計介面 → HAProxy;需 SSL 終止、Rewrite、靜態快取、微服務網關 → Nginx/OpenResty;兩者結合為企業級最佳實踐。

Copyright © Windows教程網 All Rights Reserved