“簡單”故障轉移到地理上分離的伺服器?
我一直在閱讀有關 DNS 故障轉移和許多其他技術術語的資訊,但是我在這方面有點新手,所以這對我來說聽起來像是希臘語。基本上這就是我所需要的:
我有兩個來自兩個不同提供商(伺服器 A 和伺服器 B)的共享主機帳戶。每個帳戶都包含完全相同的網站內容。
在正常的日子裡,輸入我的域名應該指向伺服器 A 的 IP。但在伺服器 A 關閉或無法訪問的糟糕日子裡,我的域名應該以最快的方式指向伺服器 B 的 IP。
您是如何實現這一目標的?如果有的話,您可以推薦哪些服務?謝謝。
注意:這個問題有一個後續問題:DNS Round Robin: Multiple Nameservers VS Multiple A Records?
簡單的答案是使用內容分發/傳遞網路來處理您的流量。他們已經擁有處理此類故障轉移的基礎設施。
如果您必須自己託管,可以採取的一種方法是:
- 將 DNS TTL 設置得很低
- 設置監控 Web 伺服器的伺服器
- 如果其中一台 Web 伺服器出現故障,請在監控伺服器上自動執行腳本以修改 DNS 並刪除故障伺服器
不過,我的第一個建議仍然是使用 CDN。
它永遠不會僅適用於共享主機帳戶。您將需要一些智能的東西來處理中斷。有很多選擇:
1.@Hyppy 所寫的 CDN
這是最簡單的,我們可以說是最便宜的靜態內容解決方案。您將靜態內容(js、html、圖像等)上傳到 CDN,它會在全球範圍內分發。您的內容具有很高的可用性,您的訪問者將從最近的伺服器下載您的內容,而不是通過整個 Internet。CDN 不能提供動態內容(好吧,有些像 Akamai 可以,但它很貴,不能提供一切)
2.負載均衡器
您將使用 HAProxy 將自己的伺服器設置為負載均衡器。您將 DNS 記錄指向負載均衡器,負載均衡器會將流量路由到目標伺服器。負載均衡器可以在所有伺服器正常時管理負載分配,並在某些伺服器當機時禁用流量。
如果您需要 HA,您應該使用虛擬 IP 備份更多負載均衡器(使用 KeepAlived 之類的東西)。如果您的兩個負載均衡器都在同一個網路上,這很容易實現,但是如果您想在不同的提供商中擁有這些負載均衡器,則非常困難(您最終會得到稱為多宿主 AS、您自己的 IP 子網和其他東西的東西) . 您可以將專用硬體用作負載平衡器,例如 F5 中的設備。
就購買而言,這是一種昂貴的解決方案,但就 TCO 而言,它可能比 CDN 便宜,而且您處理的內容不受限制。