如何在兩台 Linux 機器之間實現負載平衡?

如何在兩台 Linux 機器之間實現負載平衡?

受到 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 並接收所有流量。

相關內容