
受到 Stack Overflow 網路的啟發,我現在迷上了 HAProxy 並嘗試自己使用它。
目前,每個 HAProxy 盒子都有兩個網路卡(好吧,配置了兩個,我最多可以有 4 個,並且不確定他們是否需要自己的一個來管理盒子之間的網路卡)。
在兩台機器上,後端機器 (eth1) 是一個私人 IP,連接到連接到網路伺服器的交換機,而前端機器 (eth0) 則具有直接路由的公共互聯網 IP。
此外,我還為 eth0 建立了一個額外的虛擬 IP,eth0:0
它有第三個公用 IP 位址。
我剛剛了解如何使用它在其後面的多個 Web 伺服器之間進行負載平衡,但是,我無法在兩個 HAProxy 盒子之間進行負載平衡 - 它們似乎在爭奪虛擬 IP,但是,這似乎並沒有成為一個明智的解決方案。
現在,透過使用虛擬共享 IP 位址,此解決方案似乎有效,並且似乎確實為我提供了最大的正常運行時間,但是,這是正確的方法嗎,還是有更聰明的方法?
我一直在研究其他 Linux 軟體包,例如 keepalived,但是,我現在只使用 Linux(伺服器)一周,並且處於我理解的極限。
有沒有人以前這樣做過,您能為最大限度地延長正常運行時間提供建議嗎?
答案1
如果你想對兩個不同的 haproxy 之間的流量進行負載平衡,你需要在它們前面有另一個負載平衡器,但這沒有用。
如果您想要更高的可用性,您已經使用兩個 haproxy 並透過 keepalived 或 heartbeat 分配給其中一個的 VIP 來獲得它。通常,這是 HA 和負載平衡問題的解決方案。
我可以想到一種同時使用兩個 haproxies 的方法。您可以設定 keepalived 為每個 haproxy 伺服器指派一個 VIP。負載平衡可以透過DNS來完成。 DNS 名稱應解析為兩個 VIP。當一個 haproxy 發生故障時,另一個節點將保留兩個 VIP 並接收所有流量。