我們主持大約150個網站(可能縮放到300+),我們正在考慮遷移到node.js
。大多數網站流量相當低<每月1毫焦瀏覽量。每個網站應該是自己的`node.js`進程
每個網站應該是自己的node.js進程,還是應該使用相同的node.js進程(或一小組負載均衡進程)爲所有網站提供服務。每臺服務器的節點進程數是否存在技術限制或合理限制?
每個站點的進程:感覺效率低下,但我不知道它是否實際上效率低下。確保一個越野車站點不會影響其他站點。
每個核心/小組進程的進程:可能性更高,但是當我需要更新站點代碼庫時,會發生什麼情況,是否會影響其他站點?另外,一個站點中的代碼失敗會影響其他站點。
理想情況下,我希望每個站點有一個進程,以便我們可以託管來自每個工作服務器的所有站點。這樣,當負載增加時,我們可以啓動另一個相同的工作服務器並在兩者之間進行負載平衡,而不必隨意說SiteA轉到ServerA,SiteB轉到ServerB。任何node.js
大師可以提供一些智慧?
所有的靜態文件請求都將被Nginx或類似Varnish的東西處理。
欣賞徹底的評論。如果它有助於澄清這些應用程序,則無需具備尖端的高性能。每個站點一個進程的原因不是性能,而是處理容錯和更新代碼等問題,而不影響其他站點。按照您的建議,我寧願爲每個核心運行一些進程,但是當我這樣做時,如何處理我的兩個問題?此外,該計劃是讓所有靜態文件請求通過Nginx,Varnish或類似的東西。節點不應該提供這些服務。 – Nucleon
首先,良好的錯誤處理,這是一個給定的。但是,作爲後備,你可以看看這樣的模塊:https://github.com/nodejitsu/forever或者如果你喜歡給定站點的流程的想法:https://github.com/haraldrudell/ nodegod – ChrisCM
「每個站點一個進程的原因不是性能,而是處理諸如容錯和更新代碼等問題,而不會影響其他站點。」 @ChrisCM,我對此非常感興趣。 – fakewaffle