HAProxy 配置教程

wongchaofan發表於2024-08-08

HAProxy 代表高可用性代理,是一種流行的開源軟體 TCP/HTTP 負載均衡器和代理解決方案,可在 Linux、macOS 和 FreeBSD 上執行。其最常見的用途是透過將工作負載分佈在多個伺服器(例如 Web、應用程式、資料庫)上來提高伺服器環境的效能和可靠性。它用於許多高調的環境中,包括:GitHub、Imgur、Instagram 和 Twitter。

訪問控制列表 (ACL) 檢查語句並返回 true 或 false。您可以在許多場景中使用 ACL,包括路由流量、阻止流量和轉換訊息。除非您在另一行中使用ifunless條件引用 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

待續

相關文章