簡介
HAProxy 是一款免費、高效、可靠的高可用性負載均衡器,支援 TCP(四層)與 HTTP(七層)代理,官方測試極限可達 10Gbps 併發。專為大流量 Web 站點設計,支援會話保持、七層處理、虛擬主機,並能將後端伺服器隱藏於內網,提升安全性。
核心定位:專職負載均衡器,非 Web Server
Nginx、Apache、Lighttpd 等皆為內建反向代理功能的 Web 伺服器,可自行提供靜態/動態內容服務。HAProxy 僅專注於負載均衡與代理,不提供 HTTP 服務,因此配置簡單、效能極致、攻擊面極小。
關鍵功能特性
健康檢查與自動摘除/恢復
內建強大的健康檢查機制,後端伺服器故障自動摘除,恢復後自動加回,零人工干預。
靈活的 ACL 與內容交換 (1.3+)
- Frontend/Backend 架構:依 HTTP 請求頭(URI、Host、Cookie 等)任意規則匹配,導向對應後端群組。
- ACL (Access Control Lists):任意規則組合作為動作執行條件,實現精細流量控制。
全透明代理
可用客戶端真實 IP 或任意 IP 連線後端,需 Linux 2.4/2.6 核心打 cttproxy 补丁,適用於需保留客戶端 IP 的場景。
高效能核心優化
- 基於樹的調度器:支援萬級全速連接,統一超時設定。
- 核心 TCP 拼接:避免核心↔用戶態資料拷貝,大幅提升吞吐、降低 CPU 佔用。
- 投機 I/O:在 Socket 就緒前嘗試讀取,配合 epoll 可提升 10%+ 效能。
安全防護
- 連線拒絕/限制:低成本維持連線狀態,有效緩解蠕蟲攻擊與小型 DDoS。
- TCP 協定檢查:結合 ACL 驗證協定合法性(如允許 SSL、拒絕 SSH),非盲目轉發。
豐富的負載均衡演算法
動態加權輪詢、加權來源 IP 雜湊、加權 URL 雜湊、加權參數雜湊,並持續擴充中(如加權回應時間)。
模組化設計與標準相容
- HTTP/TCP 解耦,易於擴充七層功能。
- 完整 RFC2616 相容的頭部解析,平均 < 2ms。
- 細微頭部處理,支援 URI 部分匹配。
適用場景
- 大流量 Web 叢集(電商、門戶、API 閘道)
- 需會話保持、七層路由、SSL 卸載的架構
- MySQL、Redis 等 TCP 協定的負載均衡
- 需高可用、自動故障轉移的關鍵業務入口
總結
HAProxy 以「專職、輕量、高效、安全」著稱,是千萬級併發架構中不可或缺的流量入口組件。配合 Keepalived/VRRP 即可構建企業級高可用負載均衡叢集。