node.js cluster & nginx 反向代理

《轻量级微服务架构》一书中经过node.js cluster做为反向代理层。当时就有疑问为啥不用nginx。他们都是经过事件回调异步模式。html

node.js自己是采用单线程模型 。而经过cluster可使每一个cpu内核都运行一个node.js。node

nginx是以多进程方式工做的,在启动后,会有一个master进程和多个worker进程。nginx

输入图片说明

《Node.js process load balance performance》一文对nginx/node.js cluster/iptables的性能作了测试,结论是nginx性能更好。服务器

因此一般node.js 还要配合nginx来使用架构

为何要在Nodejs上加Nginx反向代理,缘由概括以下:

1. 用Nginx来作静态资源的反向代理,减小Nodejs的压力;
2. Nginx自带日志功能,能够不必Nodejs去处理这个问题了
3. Nginx用来作负载均衡,增长横向扩展性
4. 假如一台服务器多个Nodejs站点,或则一个域名下挂多个站点或不一样中语言的站点。有个反向代理均可以处理。

Reference:负载均衡

相关文章
相关标签/搜索