Nginx与单线程NodeJS启动服务的区别

Nginx是一款轻量的Web网页开发服务器,反向代理服务器,以稳定性,丰富的功能级,低系统资源消耗闻名。Nginx有着出色的HTTP反向代理能力,应该放在各种Web开发语言的前面。

正向、反向代理

正向代理:我想访问国外的网站,由于某些原因不能访问,通过香港的HTTP代理就可以正常访问,香港的这个HTTP代理就是正向代理。
反向代理:与正向代理刚好相反,初期启动一台服务器,一个NodeJS进程就可以完成负载,但是随着后期访问量的增加,一个进程和一个服务器已经不能满足需求,Nginx就可以发挥反向代理打作用。通过添加多个服务器和多个进程来分担压力。Nginx的作用就是反向代理。

Nginx和单进程NodeJS比较

  1. 静态文件性能
    NodeJS处理静态文件,受限于单线程异步IO模型。在多核处理器上,应该尽量使用Nginx来处理静态文件。
  2. 反向代理规则
    反向代理服务多样,让配置好的机器分担更多的压力。
  3. 稳定性和转发性能
    Nginx在同样的负载,相比NodeJS占用更好的CPU和内存资源
  4. 安全性
    减少DOS攻击
  5. 运维管理
    监听不同的端口,通过反向代理配置,将多个站点域名指向一个机器。