2012-07-31 132 views
0

請原諒我對node.js的無知。我已經開始閱讀node.js並且有一些看法可能是錯誤的。所以需要它來澄清Node.js介紹

  1. 當我們使用createServer()方法時,它是否會創建一個虛擬服務器。不知道是否術語「虛擬」是合適的,但它是最好的,我可以形容它:)
  2. 我很困惑,我應該如何部署具有的node.js +其他自定義js文件作爲它的一部分我的申請。如果我在主服務器上部署應用程序,這是否意味着我有兩臺服務器?

感謝您與我的軸承。

回答

2

我會盡量回答:

Q1:

createServer基本上創建監聽指定端口的請求上的進程。所以是的,你可以稱它爲一個虛擬服務器,它不斷地在端口監聽請求。

Q2:

是的,你可以說,它現在已經2個服務器

對於例如:你的服務器開始監聽80端口有阿帕奇(您可以通過默認的外觀訪問它http://example.com/它端口爲80)

,然後你還需要啓動節點服務監聽其他一些端口如上:端口8456(你可以訪問它http://example.com:8456/將尋找端口8456)

所以是的,你可以有兩臺服務器。

編輯

Q:因此,如果頁面是由物理服務器和node.js中創建的虛擬服務器提供服務會有什麼區別呢?

物理服務器和節點服務器是兩種不同的東西,並且沒有辦法向兩個服務器發送單個請求。

對於如: 我使用Apache服務器主機上運行PHP我的網站。它提供了我網站的所有html內容(涉及連接到mysql的數據)。 一些請求可能是:

  1. http://example.com/reports.php
  2. http://example.com/search.php

在另一端,我可能會使用服務器的NodeJS爲完全另一個目的。例如:我可能會使用它作爲返回JSON/XML的API。我可以使用這個API自己的一些動態內容通過使用JavaScript的AJAX調用或簡單的CURL命令來自PHP。或者我也可能將此API提供給公衆。 一些請求可能是:

  1. http://example.com:8456/getList?apikey= &參數1 = &參數2 =

我對用作API將是其處理併發請求的能力,並因爲它的異步傳送的NodeJS服務器的選擇文件操作將比PHP快得多。

在這種情況下,我有一個網站,它不僅在PHP上工作,而且它的2種不同技術(Apache和Nodejs上的PHP)的組合以及2個服務器在完全不同的服務器上運行,但有自己的執行空間。

+0

啊!謝天謝地,我想我瘋了:)。感謝您的回答。那麼,如果頁面由物理服務器和由node.js創建的虛擬服務器提供服務,會有什麼不同? – 2012-07-31 14:25:06

+0

增加了一些解釋...也檢查了@ film42的答案 – swapnilsarwe 2012-08-01 08:02:41

+0

感謝swapnil的解釋。 – 2012-08-01 09:40:48

0

第三個問題: 那麼,如果頁面由物理服務器和由node.js創建的虛擬服務器提供服務,會有什麼區別?

如果我想補充,它在意義上的虛擬服務器Apache是​​一個虛擬HTTP服務器偵聽任何端口上。當然Apache有更多的模塊,插件和配置,因爲Node的更輕(有點像WEBrick for rails),非阻塞和靈活的構建。然後再apache更穩定..換句話說,這是一個軟件的決定,都坐在服務器上,監聽你設置的特定端口。

這就是說,有一種部署方法可以讓節點應用程序放在nginx(另一個服務器端軟件)或HAproxy(負載處理功能強大)之類的軟件之前,所以真的完全取決於你選擇配置它。

也許我已經遠離你的問題,但我希望這有助於!

此外,你應該給的答案,其他人,他來到第一;)

+0

謝謝film42的答案。事實上,我標記了swapnil的答案。美好的一天。 – 2012-08-01 09:47:51