2013-08-01 103 views
7

我的公司目前在VPS服務器上運行一個基於LAMP的網站,因此DB和Web服務器實際上位於同一個框中。我們的MySQL DB應該與我們的Apache服務器分開嗎?

我們正在開發一個新的網站,我們計劃在同一臺服務器上託管(即,我們將在服務器A上擁有foo.com和bar.com的所有內容)。

但是,我們預計流量將會增加,並且渴望提高彈性和可擴展性。我提出了一個負載均衡的架構,它有一個單獨的數據庫服務器,即:

       Internet 
            ¦ 
           Load Balancer 
          /  \ 
         ¦ Server A ¦ ¦ Server B ¦ 
           \  /
           ¦ MySQL DB ¦ 

這是一個明智的方法嗎?還是過度設計?把所有東西放在一臺服務器上對我來說感覺很危險。雖然在這個階段我們可能不需要負載均衡,但從Web服務器分割數據庫還是明智的嗎?

我見過幾個類似的問題,但我不確定它們是否適用於Apache/MySQL環境。當我在Windows服務器環境中工作時,他們總是有獨立的數據庫服務器。

回答

7

是的,分割數據庫和Web服務器是個好主意。當然。

其中一個主要原因是每種技術(網絡服務器,數據庫)都會爭奪物理資源。例如,假設您也將緩存放在單臺服務器上。現在你有一個Web服務器,緩存和一個數據庫都在競爭RAM。只有這麼多才能走開。

再加上不同的技術將以不同的速度進行縮放。您可能只需要2-3個數據庫機器和10個Web服務器。他們有不同的需求,並會有不同的增長。現在就着眼於發展,不是一個壞主意。

只要對一臺MySQL服務器感到緊張...我認爲強制設置一個作業來備份整個數據庫每晚。

另外我還看到生產機器將數據複製到另一個充當熱備份的MySQL盒子。設置起來並不難,但確實花費了另一臺機器。

+0

我們在一個有很多非常重要的用戶提交數據的站點上使用熱備份,我們不僅擁有最新的複製數據庫,還可以運行半小時備份而無需影響主要網站的表演ANCE。 – TheJosh

4

我不同意ryan1234。

數據庫管理系統和網絡服務器之間的資源使用模式應該是完全不同的。另外,如果您打算增加機器的數量,那麼就不會利用這個機會讓網站更加適應中斷。

如果是我,我最有可能去2個運行同時運行mysql的web服務器的服務器,這兩個服務器都在數據庫上提供相同的虛擬主機和master-master異步複製(具有將流量引導到單個節點數據庫/網絡服務器的單個節點

是的,如果您需要添加更多的硬件來管理容量,那麼將DBMS拆分爲單獨的層是個好主意,但是您似乎很長

相關問題