Drupal

大型 Drupal 站點的伺服器場設置

  • June 25, 2010

我正在建立一個大型 Drupal (Pressflow) 站點,這是我目前的計劃。我有沒有做過什麼公然愚蠢的事?有沒有人有像這樣託管大型多伺服器 Drupal 安裝的經驗?

基礎設施

我很想在 HAProxy 後面有一對 varnish 節點來提供 HA Varnish 集群。

您可以輕鬆地單獨擁有 2 個以上的清漆節點,而無需 HAProxy,但是您只能對 HTTP 流量進行負載平衡。至少使用 HAProxy,你也有一個 TCP 負載平衡器。

你認為你的網路邊緣是什麼樣的?您是否計劃擁有一對 HA 硬體防火牆?您需要邊緣路由、BGP 和多路傳輸嗎?

要考慮的另一件事是文件伺服器的工作方式。您可能會受益於擁有一對文件伺服器,使用 GlusterFS 或 MogileFS 之類的儲存伺服器。這樣,您就可以確保整個基礎架構的冗餘。

添加多個 Memcached 節點也很簡單,可為您提供更多冗餘和彈性,以應對流量高峰和硬體故障。

確保您採取措施優化您的前端內容傳遞,尤其是在您預計會有高流量的情況下。將所有媒體保存在媒體域上,最好是無 cookie 的,例如http://blog.stackoverflow.com/2009/08/a-few-speed-improvements/使用 sstatic.net

您可能還需要考慮使用 CDN 來記憶體靜態內容,例如 CSS 和不變的 JS。這種多級記憶體基礎架構將消除斜線點效應,並為您提供更大的故障恢復能力。這是因為如此大比例的瀏覽器請求是針對靜態內容的,可以從離請求者最近的 CDN 的 PoP 有效地提供這些內容。在多個層(瀏覽器、CDN、Varnish、Memcache)上記憶體的另一個優點是,一段時間後,所有內容都會在多個位置多次記憶體。這使您能夠抵禦失敗。

大型 drupal 站點與大型任何站點實際上沒有什麼不同。只需確保您在網路的每一層都有多個級別的冗餘。

至於實際伺服器的規格,您可能希望清漆節點上的記憶體大於 8G。

我推薦負載平衡器盒上的英特爾伺服器 NIC,以及網路核心的 Cisco 或 HP Procurve 交換機。

您的數據庫節點應該是具有 15k SAS 磁碟的快速多處理器伺服器以提高速度。為了冗餘,將 4 個以上的磁碟放在一個 RAID10 陣列中。

我不建議在共享託管環境中執行此操作。專用伺服器可能沒問題,但考慮到,我會在運營商中立的數據中心指定一個 1/4 機架。這樣,您就可以最大程度地自由地進行伺服器的實際配置和管理。

添加:

你絕對需要執行apache嗎?

對於在 cookieless 域上託管媒體文件的伺服器,您最好從重量更輕的 HTTP 伺服器託管這些文件,Nginx 是一個很好的解決方案。Apache 可能更適合託管 Drupal 本身,但沒有真正的理由不能使用 Nginx 和 FastCGI。

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