2010-07-28 90 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