Iis

單個伺服器上的多個網站實例 - 一次升級一個

  • March 9, 2012

我想在同一站點託管一個物理機器的兩個副本,以最大限度地減少升級期間的停機時間

我想我可以在機器前面放一個負載均衡器,為這台機器分配兩個 IP,然後在負載均衡器中設置 IP。

問題是當我需要更新站點時(它的程式碼而不是基礎設施)。我想我可以通過取出一個站點的“實例”來最大限度地減少停機時間,對其進行升級,然後將其重新上線,並對另一個進行同樣的操作。

這可行嗎?

這值得嗎?

當然,這就是我們所做的。我們有兩個 Web 伺服器,A 和 B。我們有 haproxy 坐在它們前面,盡職盡責地平衡它們之間的請求。與您一樣,我們不會以請求必須返回其原始伺服器的方式儲存會話數據。

當我們想要進行升級時,我們將伺服器 A 從池中取出。我們在內部執行升級和測試站點。然後,我們將伺服器 A 放入池中,同時將伺服器 B 從池中取出。然後我們升級伺服器 B,並將其放回原處。

好處:站點升級,停機時間為 0。

缺點:在升級期間,您沒有負載平衡或冗餘。要解決此問題,您必須將更多伺服器加入其中。

至於值不值,只有你自己能回答。我們的軟體非常複雜,部署可能需要超過 5 分鐘(而且它是完全自動化的),而且它幾乎 24/7 都在使用。所以這對我們來說是沒有道理的。

如果您的網站在一天中只是偶爾獲得流量,或者主要是在工作時間,並且您沒有突破單個 Web 伺服器可以處理的障礙,那麼它可能不值得麻煩。在執行時拋出 10 秒的維護橫幅svn export可能是更合適的解決方案。

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