从我的理解Node.js不需要NginX作为http服务器(或websockets服务器或任何服务器),但我一直在阅读有关如何使用NginX而不是Node.js内部服务器并且无法找到这样做的理由很充分
mbq*_*mbq 29
这里http://developer.yahoo.com/yui/theater/video.php?v=dahl-node Node.js作者说Node.js仍在开发中,因此可能存在NginX隐藏的安全问题.
另一方面,在流量很大的情况下,NginX将能够在运行服务器的许多Node.js之间拆分作业.
但要做好准备:nginx在与后端通信时不支持http 1.1,所以如果你把节点放在nginx后面,那么诸如keep-alive或websockets之类的功能将无法工作.
UPD:请参阅nginx 1.2.0 - socket.io - HTTP/1.1 - 代理websocket连接以获取更多最新信息.
除了之前的答案,还有另一个在Node.js前面使用nginx的实际原因,这只是因为您可能希望在服务器上运行多个Node应用程序.
如果Node应用程序正在侦听端口80,则您只能使用该应用程序.如果nginx正在侦听端口80,它可以将请求代理到在其他端口上运行的多个Node应用程序.
将TLS/SSL/HTTPS委托给Nginx也很方便.可以直接在Node中执行TLS,但这是额外的工作并且容易出错.使用Nginx(或其他代理)在您的应用程序前面,您不必担心它,并且有一些工具可以帮助您安全地配置它.