Linux
擴展伺服器集群設置
我正在重建一個網站,該網站目前每月訪問量約為 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 添加回負載平衡方案)。
我敢肯定還有更多,但問題中概述的設置似乎很好。