Nginx

使用 HAProxy 或 Nginx 在 VPS 之間進行負載均衡

  • January 15, 2016

我想負載平衡+故障轉移備份託管在不同提供商上的多個 vps 網路伺服器。

我聽說對於 HAProxy,您需要同一子網下的多個伺服器,以及負載均衡器之間的共享(虛擬)IP 地址。

但在我的情況下這是不可能的,因為每個 VPS 都在不同的節點/網路上。

  1. 有沒有辦法在這種設置中使用 HAProxy?(請解釋一下,我不想听到你的“是”回答
  2. NginX 呢?是否可以使用 Nginx 實現相同的結果?(當伺服器位於不同的網路上時)

我知道 Round Rubin DNS,但它沒有提供真正的故障轉移解決方案,也沒有提供伺服器之間的負載平衡。

負載平衡和高可用性(HA)是兩個不同的東西。

是的,您可以使用 NginX 為兩個或更多節點配置負載平衡,無論它們位於何處。

對於負載平衡,您有:

DNS -> 服務 IP -> 負載平衡器 -> AppSrv1,AppSrv2,…,AppSrvn -> 一個或多個後端

對於高可用性 (HA),您有:

  • Active/Passive:

正常工作情況:

DNS -> Virtual Service IP (assigned on LB1) -> AppSrv1,AppSrv2,…,AppSrvn -> 一個或多個 Backends 如果 LoadBalancer1 (LB1) 中斷:

Hartbeat 將 VirtualIP 分配給 LB2

DNS - > 虛擬服務 IP(在 LB2 上分配)-> AppSrv1,AppSrv2,…,AppSrvn -> 一個或多個後端

  • 主動/主動:

DNS -> VirtIP1 (LB1),VirtIP2 (LB2), VirtIPn (LBn) -> AppSrv1,AppSrv2,…,AppSrvn -> 一個或多個後端

基本上,負載均衡器會根據客戶端 IP 創建散列,並將具有此散列的所有流量轉發到同一個 AppSrv(以保留會話等)。您可以配置首選 AppSrv、故障轉移 AppSrv 等

您可以在所有 VPS 上使用 LB 進行配置,將流量轉發到本地 AppSrv(相同的 VPS),如果該 AppSrv 無法訪問,則轉發到“備份”VPS。但是這種實施在很多層面上都存在問題……

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