Nginx功能描述

nginx是一款高性能的HTTP和反向代理服务器软件,第一个开源版本诞生于2004年,虽然诞生较晚但经过十多年的发展,已经成为非常流行的web服务器软件,下图是w3techs公布的全球网站服务器软件统计报告。

截止到2014年12月31日,Nginx仅次于apache成为第二大web服务器软件,而在全球最忙碌top10000网站中使用比例更是高达42.7%。其发展速度和流行程度已经远远超过其它同类软件,成为大型网站和高并发网站的首选。

2.1Nginx 和Apache的相同点:

  • 同是HTTP服务器软件,都采用模块化结构设计
  • 支持通用语言接口,如PHP,Python等
  • 支持正向代理和反向代理
  • 支持虚拟主机及ssl加密传输
  • 支持缓存及压缩传输
  • 支持URL重写
  • 模块多,扩展性强
  • 多平台支持

2.2 Nginx的优势与劣势

  nginx的优势: 

  • 轻量级 安装文件小 运行时CPU内存使用率低
  • 性能强 支持多核,处理静态文件效率高,内核采用的poll模型最大可以支持50K并发连接
  • 支持热部署 同时启动速度快,可以在不间断服务的情况下对软件和配置进行升级
  • 负载均衡 支持容错和健康检查
  • 代理功能强大 支持无缓存的反向代理,同时支持IMAP/POP3/SMTP的代理

  Nginx的劣势:

  • 相比Apache 模块要少一些,常用模块都有了,而且支持LUA语言扩展功能
  • 对动态请求支持不如apache
  • Windows 版本功能有限 ,受限于windows的特性,支持最好的还是*unix系统

 

2.3 Nginx的工作原理

Nginx由内核和一系列模块组成,内核提供web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互。Nginx的各种功能和操作都由模块来实现。Nginx的模块从结构上分为核心模块、基础模块和第三方模块。

  • 核心模块: HTTP模块、EVENT模块和MAIL模块
  • 基础模块: HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
  • 第三方模块: HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块及用户自己开发的模块

这样的设计使Nginx方便开发和扩展,也正因此才使得Nginx功能如此强大。Nginx的模块默认编译进nginx中,如果需要增加或删除模块,需要重新编译Nginx,这一点不如Apache的动态加载模块方便。如果有需要动态加载模块,可以使用由淘宝网发起的web服务器Tengine,在nginx的基础上增加了很多高级特性,完全兼容Nginx,已被国内很多网站采用。

 

posted @ 2017-11-20 10:21  我和僵尸有个约会  阅读(140)  评论(0编辑  收藏  举报