HAProxy 代表高可用性代理,是一種流行的開源軟體 TCP/HTTP 負載均衡器和代理解決方案,可在 Linux、macOS 和 FreeBSD 上執行。其最常見的用途是透過將工作負載分佈在多個伺服器(例如 Web、應用程式、資料庫)上來提高伺服器環境的效能和可靠性。它用於許多高調的環境中,包括:GitHub、Imgur、Instagram 和 Twitter。
訪問控制列表 (ACL) 檢查語句並返回 true 或 false。您可以在許多場景中使用 ACL,包括路由流量、阻止流量和轉換訊息。除非您在另一行中使用if
或unless
條件引用 ACL,否則 ACL 不會對您的配置產生任何影響。
frontend www
bind :80
acl images_url path_beg -i /images/ #ACL 的名稱是images_url ,path_beg
use_backend static_assets if images_url #根據acl的名稱,把資料路由到對應的後端
backend static_assets
server s1 192.168.50.20:80
更多規則參考https://www.haproxy.com/documentation/haproxy-configuration-tutorials/core-concepts/acls/
負載均衡
在以下示例中,我們對 MySQL 伺服器進行負載平衡。通常,當伺服器可能保持連線的時間可變時,最好將負載平衡演算法設定為最少連線。該演算法將下一個客戶端傳送到具有最少活動連線的伺服器。
frontend mysql mode tcp bind :3306 default_backend mysql_servers backend mysql_servers mode tcp balance leastconn #最少連線,除此外,還有roundrobin迴圈模式,source源模式,根據訪問源IP分配 server s1 192.168.0.10:3306 server s2 192.168.0.11:3306
待續