顺德公农庄 发表于 2017-2-24 11:13:26

Nodejs高性能服务架构:cluster模式+Nginx多进程模式

Nodejs和Nginx都是轻量级,高性能服务器的代表,而Nodejs站点的标准配置就是在Nodejs服务器上架一层Nginx反向代理,两种轻量级高性能的服务器组合在一起产生什么样的火花呢?往下看。

  为什么要在Nodejs上加Nginx反向代理,原因归纳如下:

[*]  用Nginx来做静态资源的反向代理,减少Nodejs的压力;
[*]  Nginx自带日志功能,可以没必要Nodejs去处理这个问题了
[*]  Nginx用来做负载均衡,增加横向扩展性
[*]  假如一台服务器多个Nodejs站点,或则一个域名下挂多个站点或不同中语言的站点。有个反向代理都可以处理。
  加了Nginx做反向代理是否对网站性能有影响?答案是有影响,但咱有方案:Nginx多进程+Nodejs Cluster
  做个测试,那10000次连接,1000并发来测试。
  在nodejs的fork模式的速度是

  nginx 单进程+nodejs fork:基本看上去就慢很多了。

  nginx 3进程+nodejs fork:这个跟不用反向代理的速度差不多

  nodejs cluster(3)比fork模式稍微快一点.

  nginx+nodejs cluster(3)

  nginx 3进程+nodejs cluster(3)

无反向代理nginx单进程nginx多进程(3个)nodejs fork1.3416.5451.332nodejs cluster(3个)1.0413.2591.026  结论:

[*]  nginx作为反向代理,如果不开启多进程的情况下,还是会对性能有影响。
[*]  nodejs开启cluster模式比fork还是要快。
[*]  nginx开启多进程的情况下,几乎可以不影响性能,还可能提升部分性能。
  * 以上测试在centos 6.5上完成,单机。
  原文地址:http://www.monring.com/front_end/nodejs-cluster-nginx.html
页: [1]
查看完整版本: Nodejs高性能服务架构:cluster模式+Nginx多进程模式