nginx作为web服务器的特点总结

  • 2017-01-11
  • 789
  • 0

最近在研究OpenResty(ngx_lua) ,其是由标准的Nginx核心加上常用的第三方模块以及它们的大多数依赖项组成,优点是默认集成了Lua开发环境,使得Nginx可以作为一个Web 应用服务器使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。OpenResty的作者介绍,基于它,开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,可以轻松构建出处理一万以上并发请求的极端高性能的 Web 应用。鉴于OpenResty是搭建在nginx上的,有必要对nginx做个系统性的学习,在此OpenResty便不多做介绍,后续再做整理。

nginx特点

1)处理响应请求快/高并发连接

在正常的情况下,单次请求会得到更快的响应。在高峰期,Nginx 可以比其它的 Web 服务器更快的响应请求。官方测试能支持5万并发连接,理论上,Nginx 支持的并发连接上限取决于你的内存,如果机器足够给力,甚至远高于5万并发连接。这得益于nginx在linux内核中使用了epoll的网络I/O模型(freebsd 上是 kqueue模型),相较于Apache的select模型,其为同步多进程模型,一个连接对应一个进程,导致需要经常派生子进程,所以所消耗的cpu等服务器资源会比nginx高很多。

2)内存消耗小

OpenResty作者agentzh介绍,在一般的情况下,10000 个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存,这也是 Nginx 支持高并发连接的基础。

同时,《实战nginx:取代apache的高性能web服务器》作者张宴也在书上测试过nginx+php(fastcgi)服务器在3万并发连接下,内存消耗也非常的小。

3)高扩展性

高度模块化的设计,编写模块相对简单。这种设计造就了 Nginx 庞大的第三方模块。

4)支持热部署

master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的功能,可以在 7 × 24 小时不间断服务的前提下,升级 Nginx 的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。之后在nginx的信号控制中会讲到。

5)其他特点

同时,nginx在反向代理,rewrite规则,稳定性,静态文件处理等方面,都表现出了很强的优势。支持gzip压缩,可以添加浏览器本地缓存的header头,节省了带宽。用于反向代理时,基于一些机制使得宕机的概率大大减小。即使nginx proxy的后台某台web服务器宕机了,其内置的检查功能,也不会影响前端访问。之后在反向代理/负载均衡中会讲到。


上一篇:  下一篇:

评论

还没有任何评论,你来说两句吧

Copyright © 2014-2016 lxlxw All Right Reserved