为什么 node可以不用nginx这类软件?


为什么 node可以不用nginx这类软件?

node.js

霸王硬上弓 9 years, 7 months ago

Node可以常驻内存 当然就可以使用他这自带的启动http server的函数来做监听了,来了一个请求,其内部就会丢到一个队列里,处理完成任务后,就会触发异步响应。nide不需要其他服务器支援,源于他就是这么设计的,没有为什么。

犬神洛洛子 answered 9 years, 7 months ago

node 可以不用nginx

这个原因是因为node自己就具备开启一个socket端口的能力,其实PHP现在也可以。当然,广泛的说,只要可以可以开socket,那么这些语言都可以不用nginx类似的服务去包装。
PHP和nginx是通过FastCGI的方式进行交互的,其实具体下来有两种:
1. TCP
2. Unix Socket

其实本质就是进程间通信。

那么,再一条总结,node当然也可以用nginx,这时候nginx只是单纯的做一个反向代理(或者你也可以让nginx把所有的静态文件代理了,因为nginx处理静态文件的效率很是很高的)。 同理,我在使用tomcat的时候就经常这么干~因为tomcat处理静态文件的效率并不高,nginx把所有静态请求拦下自己处理,动态请求发送给tomcat,这样就实现了网页的所有的请求。

kyoyu answered 9 years, 7 months ago

nginx是个HTTP server,但是node.js自己就是个HTTP server,所以不用就不用了呗。

萌之上即为荡 answered 9 years, 7 months ago

node.js本身就是被设计用作高性能网络服务器的。

而且node网络部分的代码都是直接用的nginx的,本质上没有很大区别。

具体的细节可以在网上搜到。

小原是小达 answered 9 years, 7 months ago

Your Answer