Linux

擴展伺服器集群設置

  • May 9, 2012

我正在重建一個網站,該網站目前每月訪問量約為 400 萬以上(而且最近還在直線上升)。它目前由一家外部公司執行和託管,但我們正在傾銷它們,所以我需要設計託管。

我正在考慮建構一個小型集群(可能在 Linode 上):

  • 一個 Linode NodeBalancer用於平衡應用伺服器之間的負載。它可以使來自特定客戶端的所有流量都流向一個應用伺服器,但 WP 通過 cookie 處理會話,因此這並不重要。
  • 兩個(或更多)應用伺服器- Linode(512?)VPS 執行 Debian6/Apache2/PHP5/Wordpress,但nginx 用於記憶體
  • 一個 MySQL(或 MariaDB?)數據庫伺服器(同樣是一個 VPS),可能還有一個帶有HyperDB的從屬伺服器。
  • 開發是在一個普通的舊 FBSD/Apache2/MySQL/PHP5 上內部完成的,部署只需將新程式碼一次推送到所有應用伺服器,並將任何數據庫更改推送到數據庫伺服器。
  • 備份將儲存在本地。我們可以在低流量時間備份一個應用伺服器(它們應該是相同的?)以降低負載。
  • 電子郵件通過 MailChimp 處理。簡單的。

WP 本身正在使用 Xcache 執行 W3 Total Cache,我正在考慮為圖像和其他靜態文件使用 CDN,記憶體標頭已經用於這些靜態文件……

計劃是隨著我們的擴展,我可以根據需要添加更多的應用程序和/或數據庫伺服器。

簡而言之:這個設置會起作用嗎?會不會有效率?我以前從未建構過這樣的東西,所以我想確保我沒有遺漏任何東西。

僅供參考:這是一個新聞網站。我們在幾個版塊、一些媒體上執行文章,訪問者可以評論文章、註冊我們的電子郵件列表等。

我正在與另一家公司建立與您類似的東西。我不一定要評論 Linode 的工作原理,但想強調一下我在研究 VPS 時遇到的一些事情:

  • 我不知道 linode 的負載均衡器的成本,但我發現我喜歡控制執行 HAProxy 或 NGINX 以進行負載均衡的通用 VPS 的配置(我選擇了 HAproxy)。
  • 確保您有足夠的 RAM。不幸的是,到目前為止我發現的公開產品不允許您調整 RAM 和 HDD 的數量(我需要更多的 RAM,但幾乎不需要那麼多的 HDD。哦,好吧)。
  • 確保您的 VPS 是持久的。如果 VPS 關閉或硬體故障,您不希望失去執行在 VPS 上的數據(尤其是 MySQL)。這是 MySQL 的 EC2 文件,但一些相同的概念適用)。
  • 一定要確保將 MySQl 複製到不同的伺服器,甚至是多個從屬伺服器。不想失去數據。
  • 一定要確保您將備份檢索到異地伺服器。
  • 如果您要部署到多個負載平衡伺服器(2 個或更多應用程序伺服器),請擁有一個“主”伺服器,備份 rsync 從該伺服器更新程式碼。這簡化了您的 dev-push 過程(將 master 退出負載平衡方案,確保 slave 不會從舊 master rsync,將程式碼推送到 master,確保一切按預期工作,重新打開從 master 到 slave 的 rsync,然後將 master 添加回負載平衡方案)。

我敢肯定還有更多,但問題中概述的設置似乎很好。

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