2016-11-14 66 views
-1

我有一臺筆記本電腦,我正在運行一個四核處理器的Ubuntu服務器上的節點。設置多個網站的節點服務器,並讓每個站點都有自己的線程

這個服務器上有2-3個網站的計劃,我不是一個很好的管理員,需要幫助讓這個網站去,所以我不想從頭開始運行管理程序。有沒有辦法讓節點主機3站點和每個運行在他們自己的處理器線程上?我知道Node是單線程的,雖然我真的不需要爲了性能而做這件事(因爲它只是用於開發),我喜歡這個作爲在node中做事情的練習,它會很酷!有數據庫的第二臺筆記本電腦,所以我不擔心資源。

所以3個站點上的所有在不同的線程的Ubuntu Server的一個實例.....

+0

如果您不關心端口,那麼您可以運行具有不同端口的三個節點應用程序實例。 –

+0

那麼我該如何在服務器上啓動節點3次?因爲如果我啓動節點,那麼我只能獲得一個應用程序。像「sudo nodejs app.js」 – illcrx

回答

1

這並不完全清楚你想要完成什麼。這裏有幾個方案:

  1. 創建三個獨立的Node.js服務器,每個聽自己的口,他們每個人都可以運行自己的node.js的過程相互獨立。然後讓每個客戶端連接到適當的端口。

  2. 創建三個獨立的node.js服務器,每個服務器都監聽自己的端口,並且每個服務器都將獨立運行自己的node.js進程。在三個Web服務器前使用NGINX作爲代理,您可以讓NGINX將來自三個域中每個域的端口80上的所有請求都指向相應的node.js Web服務器。通過這種方式使用NGINX,所有三個Web服務器似乎都可以運行在默認端口80(或443)上,NGINX將它們分離出來,並將它們引導至相應的Web服務器進程。

  3. 創建您自己的master node.js進程,該進程接收所有三個域的請求,查看主機頭以查看請求實際指向的域,然後將該請求轉發給適當的子進程。這與node.js中的集羣工作方式類似,但每個子進程都將是您的每個不同的Web服務器。就我個人而言,我將使用NGINX中的預建功能爲您完成此操作(如上面的選項2所述),但如果您不想運行NGINX,則可以自己編寫代碼。

  4. 而不是NGINX,使用某種負載均衡器,您的ISP可能已經有必要將傳入連接指向正確的服務器進程。

0

如果運行3個不同的應用程序,即。那麼它們將作爲服務器上的不同進程運行,假設所有進程都運行在不同的端口上,那麼同時運行它們應該沒有問題。當您將節點稱爲適用於單個進程的單線程時,每個進程都有自己的事件循環運行。

+0

那麼我該如何在服務器上啓動節點3次?因爲如果我啓動節點,那麼我只能獲得一個應用程序。像「sudo nodejs app.js」 – illcrx

相關問題