于2001年12年首次發布,比Nginx歷史悠久,18年來,HAProxy一直在演化和創新,2019年5月HAProxy2.0版本發布。
1、HAPorxy的優點
1)HAProxy實現了一種事件驅動、單一進程模型,此模型支持非常大的并發連接數,在多核模式下可以利用CPU親和性,啟動多個HAProxy進程增強并發。
2)支持四層、七層負載均衡,支持TCP、HTTP、HTTPS、HTTP2、websocket協議。
3)支持多種負載均衡算法。
4)健康檢查:支持TCP和HTTP兩種主動健康檢查模式。
5)HTTP請求重寫與重定向,會話保持。
6)HAProxy2.0支持云原始和容器化
a、7層網絡重試:可以從第7層的另一臺服務器重試失敗的HTTP請求
b、現在支持向Prometheus暴露metric
c、多語言可擴展性:HAProxy1.7中引入了流處理卸載引擎(SPOE,StreamProcessingOffloadEngine)和流處理卸載協議(SPOP,StreamProcessingOffloadProtocol),目標是使用任何編程語言創建構建在HAProxy上所必需的擴展。
d、Trafficshadowing,可以將請求從一個環境鏡像到另一個環境,這可以將一定比例的生產流量發送到測試或暫存環境,以在完全部署之前審核發布的情況。
e、完全支持gRPC,允許雙向數據流,檢測gRPC消息和記錄gRPC流量。
f、支持HAProxyKubernetesIngress控制器和功能強大的HAProxy數據平面API,它提供了一個用于配置和管理HAProxy的現代RESTAPI
2、HAProxy的安裝
1)yum安裝
yum-yinstallhaproxy
2)HAProxy是開源的,可以從其網站下載源碼,通過源碼編譯安裝
3、HAProxy的配置
HAProxy的配置比較簡單,通過80端口將url轉發后端相應的server上
配置格式如下:
global
log127.0.0.1local2
chroot/var/lib/haproxy
pidfile/var/run/haproxy.pid
userhaproxy
grouphaproxy
daemon
#turnonstatsunixsocket
statssocket/var/lib/haproxy/stats
frontenmy_frontend
bind80
modehttp
aclmy_aclhdr(host)-imy_domain
use_backendmy_backendifacl
backendmy_backend
modehttp
balanceroundrobin
servermy_srv172.28.13.45:8080check
servermy_srv172.28.13.46:8080check
4、總結
HAProxy的開源免費,高性能等特點,會越來越受互聯網公司的青睞。