2010-07-28 45 views
20

Node.js比Apache更快,更具可擴展性嗎?是否有任何性能數據可以通過Apache備份Node.js的Web應用程序的性能?與Apache相比,Node.js的性能如何?

更新:好吧,也許我的問題(上面)是令人困惑,因爲我有點困惑,如何Node.js如何坐在一個Web堆棧。在什麼情況下,我應該考慮使用Node.js而不是像PHP,MySQL和Apache這樣的更傳統的堆棧 - 或者Node.js是否將它作爲堆棧的一部分?

+5

更快*什麼*?你要爲什麼類型的Web應用程序提供服務? – 2010-07-28 20:18:40

+0

這個問題基本上不可能在特定測試用例的上下文之外回答。 – 2010-07-28 20:22:49

+2

本文可能有助於回答您的問題:http://al3x.net/2010/07/27/node.html – 2010-07-28 20:38:14

回答

17

Node.js是一個非常適合編寫高性能Web應用程序的框架,而無需瞭解如何在低級別實現併發性。它是使用非阻塞IO編寫服務器端JavaScript應用程序的框架:將延續傳遞給IO調用,而不是等待結果。 Node.js提供了一個系統API(文件系統訪問,網絡訪問等),其中所有API調用都會延續,運行時將隨後執行結果,而不是阻塞並將結果返回給原始調用方。

如果你喜歡,你可以自己使用。但是您可能需要在Node.js前面有一個專門的反向代理:像Apache,Nginx,LigHTTPD等。或者,爲了聚集更大的應用程序,您可能需要在多個正在運行的Node.js應用程序服務器之前使用HAProxy。

+0

@agnoster感謝您的評論 - 我改變了我的答案。 – yfeldblum 2010-11-06 14:59:25

+0

感謝您的反饋!我要給出的唯一的其他評論是,由於技術原因,如果你想在Node.js前面運行一個反向代理,並且你運行的是socket.io,你會想繞過大多數websocket通信。 – agnoster 2010-11-06 18:21:04

+1

反向代理有什麼好處? Node的服務器功能是否更適用於輕量測試,不太安全/性能,還是其他的功能僅僅是人們想要基本節點服務器不具備的功能? – 2013-02-25 18:32:06