多個網站同住一台主機如何分配資源?Multisite vs 附加網域選型與隔離策略

在同一台主機上架起第二個、第三個網站,看起來是壓低成本的直覺做法。但資源要怎麼分、風險要怎麼隔,卻是許多站長日後懊悔沒有提早釐清的問題。主機費只要一份,不代表資源用量也只有一份;資料庫、記憶體、磁碟 I/O 都是有限的,架構沒想好,一個站出問題很容易拖累全部。

在談具體設定之前,有必要先釐清「多個網站同住一台主機」這件事,市面上走的其實是三條差異相當大的路——附加網域(Add-on Domain)、子網域(Subdomain),以及 WordPress 多站網路(Multisite Network)。三種做法的資源共用程度與風險邊界落差很大,選錯方向再改的代價不低。

三種多站架構的根本差異

附加網域是傳統共享主機最常見的多站做法。架構上是在主帳號底下掛一個新網域,主機商為它分配一個獨立的網頁根目錄,讓它對外看起來像一個完全獨立的網站。每個附加網域各自有一份 WordPress 安裝、一個資料庫,PHP 行程由主機的資源池統一排程。

比較維度 附加網域 子網域 WordPress 多站網路
WordPress 安裝數 各自一份 各自一份 共用一份
資料庫 各站獨立 各站獨立 單一資料庫(表格前綴區分)
外掛/主題管理 各站自管 各站自管 超級管理員統一管控
流量爆衝影響範圍 拖慢同帳號其他站 拖慢同帳號其他站 拖慢整個網路
適合站點關係 彼此完全無關 主站下的功能分區 品牌矩陣或多語言站
主機層隔離度 中等(帳號層共享) 中等(帳號層共享) 低(同一程式碼庫)

子網域的技術結構與附加網域相近,差別在於網址格式為 shop.example.com,從屬關係在主網域之下。附加網域適合完全獨立的品牌或專案;子網域更適合「主站的功能延伸」,例如電商分店或區域版本。兩者在主機層面的資源競用邏輯幾乎一致。

WordPress 多站網路則是另一個維度的選擇。它以單一 WordPress 安裝運行多個子站,外掛與主題由超級管理員(Super Admin)統一安裝,各子站可選擇啟用哪些。管理成本集中是它的優點,隔離度最低是它的代價——一個外掛更新出錯,所有子站一起受影響。這套架構適合品牌旗下需要統一管控外觀與功能的矩陣型站群,不適合「只是想把兩個不相干的網站放同一台主機」的情境。

多站台主機資源分配的競用樣貌

多站台主機資源分配的問題,最先浮現在 PHP 行程與記憶體這兩個環節。

共享主機的 PHP 行程數通常有帳號層上限,幾個站共用同一個上限。A 站突然湧入一波流量,把可用行程佔滿,B 站的訪客就得排隊等候。這是帳號層資源競用最直接的表現。許多站長沒有意識到這件事,只看到「B 站沒問題」,卻不知道 A 站的峰值流量已在蠶食 B 站的資源裕度。

WordPress 的每次頁面請求預設會消耗 64 至 128 MB 記憶體。若裝有圖片處理或 WooCommerce 類的外掛,單次請求容易超過 256 MB。多站架構下記憶體上限是帳號共享的,估算時要把所有子站的同時請求數加總,而不是只看單站。

資料庫連線數同樣是隱藏的競用點。一台 MySQL 伺服器能接受的最大連線數有上限,多個 WordPress 站同時運行,連線池壓力比單站大幾倍。在共享主機上,這個上限並非用戶獨佔,而是與同主機其他用戶共用的。

磁碟 I/O 在流量平穩時通常不是瓶頸,但若多個站同時進行大量媒體上傳、備份或資料庫匯出,I/O 就會成為限制點。這類操作盡量安排在離峰時段,或使用排程工具(如 Action Scheduler)分散執行時間。

隔離風險的具體設定方向

資料庫帳號各站分開設定

這是成本最低、效果最明確的一步。許多人為了方便,讓多個 WordPress 安裝共用同一個資料庫帳號,一旦某個站的資料庫遭到注入或帳號外洩,其他站的資料也一併曝露。正確做法是每個 WordPress 安裝都使用獨立的資料庫帳號,並且只授予必要的最小權限,包含 SELECT、INSERT、UPDATE、DELETE,不開放 DROP、CREATE 這類結構修改權限。

外掛版本與更新各站獨立維護

附加網域與子網域的架構下,每個站是獨立的 WordPress 安裝,外掛更新互不影響。這雖然增加了維護工作量,但也意味著一個站的外掛衝突不會波及其他站。若要批次處理更新,可以用 WordPress CLI(WP-CLI)寫成批次腳本,但每次更新前須先備份。

多站網路則需要格外審慎。超級管理員更新外掛後,所有子站同時套用。建議在正式更新前,先於測試環境或流量最低的子站驗證,確認無誤再推至整個網路。

快取層的設定要分站隔離

在多站架構下使用全站快取(如 WP Rocket 或 W3 Total Cache)時,要確認快取目錄是分站儲存的,不要讓 A 站的快取路徑與 B 站重疊。多數知名快取外掛在附加網域情境下預設都能正確分開,但在 WordPress 多站網路下,部分外掛的快取清除邏輯會清除整個網路的快取。使用前應查閱外掛的多站支援說明,再決定是否採用。

錯誤日誌各站獨立收集

當某個站出現問題時,若所有站的 PHP 錯誤都混在同一個 error_log 裡,排查速度會大幅下降。可以在各站的 wp-config.php 裡指定獨立的錯誤日誌路徑:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', '/home/user/logs/site-a-debug.log' );
define( 'WP_DEBUG_DISPLAY', false );

這樣每個站的錯誤有各自的記錄,問題定位會快很多。

什麼情境該換成 VPS 或獨立主機

共享主機的多站架構在站點數少、流量合計平穩的情況下是合算的。但以下幾個訊號出現時,就需要認真評估是否升級。

合計日均 PV 超過 3 萬:在這個量級下,共享主機的行程上限開始容易成為瓶頸,頁面回應時間出現波動,即使單站分開看都在正常範圍。

有站點在運行 WooCommerce 交易:交易涉及資金與客戶資料,對資料庫讀寫效能與安全隔離的要求,明顯高於一般內容站。混住在共享帳號的環境下,資源不穩定對結帳轉換率(Conversion Rate)的影響不容忽視。

站點間需要完全獨立的 SSL 憑證管理與防火牆規則:共享主機在這方面的彈性有限。若有合規要求或安全稽核,VPS 或雲端伺服器(如 AWS Lightsail、DigitalOcean)提供的獨立環境會更容易達標。

VPS 架構下的多站管理,主流做法是用 Nginx 設定虛擬主機(Virtual Host),每個網站有自己的 PHP-FPM 行程池(Pool),可以為不同站設定不同的記憶體上限與最大行程數,隔離程度遠高於共享主機的帳號層隔離。這類設定的複雜度高於共享主機,但對於站點數超過三個、或流量分布不均的情境,這個投入是值得的。

相關文章
標籤: 共享主機, 多站台主機, 主機資源分配, Multisite, VPS 升級信號