2014-04-01 103 views
0

我目前在學習NodeJS,對此非常興奮。 但這是一件我不確定並需要幫助的事情。NodeJS內部HTTP Web服務器的主要用途是什麼?

因爲我們知道NodeJS有自己的內部http web服務器,我們可以簡單地使用http.createServer()方法創建。

我的問題是:

  1. 是不是具有的NodeJS內部HTTP Web服務器,這意味着可替代同類HTTP Web服務器,如Apache或Nginx的?
  2. 如果我需要創建企業級應用程序,NodeJS內部Web服務是否可以做到這一點?還是我需要仍然使用Apache/Nginx?

請幫忙。謝謝。 Adrian

+0

是的,它是取代Apache和喜歡,但每個解決方案都有自己的優勢和缺點。 – webduvet

+1

我不確定企業級應用程序,但Node.js非常適合創建實時應用程序(例如聊天)。如果你對它感興趣,你可能會發現[socket.io](http://socket.io/)有用。 – Curious

+0

謝謝大家,在閱讀你的答案和評論後,我終於決定只使用** NodeJS http web服務器**,因爲它已通過我能想到的各種方式通過了一些壓力測試。我考慮的另一件事是,這個Web服務器將只提供靜態文件。所以幫助我,上帝,我做出了正確的決定。 – Adrian

回答

0
  1. node.js不需要Apache或nginx之類的web服務器,它是它自己的web服務器。
  2. 沃爾瑪用他們的話說就是「end-to-end javascript」......這當然是企業規模,儘管他們沒有明確說他們依賴於http.createServer,但端到端的javascript將消除Apache或nginx和我懷疑他們已經開發出了一些奇特的解決方案(儘管socket.io是一種可能性)......一般來說,如果你在網絡上使用節點,你至少在某種程度上使用內置的web服務器。

在前端使用nginx作爲反向代理/靜態文件服務器可能有一些好處。如果我正在設計我的「完美系統」,我可能會這樣做,但我仍然會將請求傳遞迴節點中內置的Web服務器。

+0

如果您在連接到www.walmart.com時檢查響應標題,則其中一個字段爲「服務器:Apache-Coyote/1.1」。 Coyote是[Tomcat](https://en.wikipedia.org/wiki/Apache_Tomcat#Coyote)的一部分,它是爲Java servlet服務的。 – Louis

+0

我確實認爲他們所說的「端到端的JavaScript」是一個應用程序,而不是它們的完整網站,但是它在黑色星期五部署了並且經歷了極端負載,所以規模並沒有問題。 – Jason

0

你不需要在node.js中使用Apache或Nginx,但實際上,它可能是一個好主意。

基本上,Apache會坐在你的node.js前面,並使用類似mod_rewrite的方式向/從節點應用轉發請求。

節點http服務器模塊非常適合啓動快速應用程序,但如果您需要諸如SSL,複雜的mod_rewrites,目錄安全性,詳細日誌等(即您在商業應用程序中需要的所有東西),則需要(或者至少更容易)在節點前使用Apache或Nginx。

+0

在使用Apache和節點之後,我不同意在Apache中執行這些操作更容易。特別是,SSL在節點中非常容易,mod_rewrite在節點中並不真正相關(或者至少,實現相同目標的方式直觀而直接,而不是我總是在Apache中遇到的混亂)... nginx可能是另一回事。我建議你追求除Apache +節點之外的其他任何設置,但這並不是說它本身不好,但是有更好的選擇。 – Jason

相關問題