Load-Balancing

Haproxy 1.5x 重新載入配置而不終止第 7 層會話?

  • December 3, 2015

伙計們,

我將我們的一個 SaaS 應用程序從 coyote 點硬體負載平衡器移到執行 nginx + haproxy 的 vm 上,並使用 haproxy 處理雜湊持久性。

我遇到的問題是應用程序需要對單個後端伺服器的會話粘性(以原始請求為準)但是當我對 haproxy.cfg 進行更改並執行服務 haproxy 重新載入時,它會將 haproxy 作為新程序重新啟動並殺死終止與特定後端伺服器的任何現有連接的舊程序,這意味著任何使用者都會立即退出應用程序。

這是 HA-Proxy 版本 1.5.4 的 haproxy 後端配置 2014/09/02

backend webapp
   balance hdr(X-Real-IP)
       hash-type consistent
       mode http
       server server1 192.168.10.50:8080 check port 8080
       server server2 192.168.10.53:8080 check port 8080
       server server3 192.168.10.55:8080 check port 8080
       server server4 192.168.10.62:8080 check port 8080 backup

這對我們來說是一個大問題,因為當我需要對特定的後端伺服器進行維護,或者從後端池中添加/刪除其他伺服器時,我無法在不影響應用程序的客戶端體驗的情況下做到這一點。

如果 Haproxy 無法正常重新載入,如何在不終止與後端的現有會話的情況下動態更改後端伺服器?

如果您為伺服器定義了一個對等點,即使它只有一個並且它是本地的,在每個soft restarthaproxy 上,狀態都應該被複製到新程序。

文件

引用自:https://serverfault.com/questions/740419