您的位置:首页 >  新闻中心 > 开发者专区
  开发者专区
 

学会Nginx,提升Web应用性能不是个事!

来源:原创    时间:2018-01-31    浏览:0 次

7 年前,Nginx 的比例还仅仅 3.9%,现在已达到 33.3 %,是增量最快的 Web 效劳器。均匀而言,在全球 Top 1000 万网站傍边,每分钟有 1 网站转向 Nginx。同样是 7 年前,Apache 的比例是 71.5%,现在降到 50%。微软是 IIS 从 20.6% 降到 11.3%。


由此可见,Nginx 近年来市场比例继续攀升,越来越受开发者的喜爱,今日,咱们就一同来了解下Nginx。

高功用 Web 效劳器 Nginx


授权协议:BSD

开发言语:C/C++

操作系统:跨渠道

开发厂商:Linux

blob.png


Nginx 简介


Nginx是一款轻量级的 Web 效劳器/反向代理效劳器及电子邮件(IMAP/POP3)代理效劳器,并在一个 BSD-like 协议下发行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows 等操作系统中运转。


Nginx 由俄罗斯的程序规划师 Igor Sysoev 所开发,开始供俄国大型的进口网站及搜索引擎 Rambler(俄文:Рамблер)运用。其特色是占有内存少,并发才能强,事实上 nginx 的并发才能确真实同类型的网页效劳器器中体现较好。


Nginx 的特色

Nginx 是一款面向功用规划的 HTTP 效劳器,相较于 Apache、lighttpd 具有占有内存少,稳定性高级优势。与旧版别(<=2.2)的 Apache 不同,nginx 不选用每客户机一线程的规划模型,而是充沛运用异步逻辑,削减了上下文调度开支,所以并发效劳才能更强。


全体选用模块化规划,有丰厚的模块库和第三方模块库,装备灵敏。在 Linux 操作系统下,nginx 运用 epoll 事情模型,得益于此,nginx 在 Linux 操作系统下功率适当高。一起 Nginx 在 OpenBSD 或 FreeBSD 操作系统上选用类似于 epoll 的高效事情模型 kqueue。


可许多平行处理。Nginx 在官方测验的成果中,可以支撑五万个平行衔接,而在实践的运作中,可以支撑二万至四万个平行链接。

Nginx 的模块与作业原理

Nginx 由内核和模块组成,正是有了这么多模块的支撑,Nginx 的功用才会如此强壮。Nginx 的模块从结构上分为中心模块、根底模块和第三方模块:

● 中心模块:HTTP 模块、EVENT 模块和 MAIL 模块

● 根底模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块

● 第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模块。


Nginx 的模块从功用上分为如下三类:

● Handlers(处理器模块)。此类模块直接处理恳求,并进行输出内容和修正headers信息等操作。Handlers处理器模块一般只能有一个。

● Filters (过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修正操作,最后由Nginx输出。

● Proxies (代理类模块)。此类模块是 Nginx 的 HTTP Upstream 之类的模块,这些模块主要与后端一些效劳比方 FastCGI 等进行交互,完成效劳代理和负载均衡等功用。

blob.png


为什么挑选 Nginx

Nginx 是一个很牛的高功用Web和反向代理效劳器,比较其他效劳器,它具有有许多十分优胜的特性:

在高衔接并发的情况下,Nginx 是 Apache 效劳器不错的替代品:Nginx 在美国是做虚拟主机生意的老板们常常挑选的软件渠道之一。可以支撑高达 50,000 个并发衔接数的呼应。

Nginx作为负载均衡效劳器;Nginx 既可以在内部直接支撑 Rails 和 PHP 程序对外进行效劳,也可以支撑作为 HTTP代理 效劳器对外进行效劳。 Nginx选用C进行编写, 不论是系统资源开支仍是CPU运用功率都比 Perlbal 要好许多。

Nginx 作为邮件代理效劳器:Nginx 一起也是一个十分优异的邮件代理效劳器(最早开发这个产品的意图之一也是作为邮件代理效劳器), Last.fm 描绘了成功而且美好的运用经历。

Nginx 是一个 [#installation 装置] 十分的简略, 装备文件十分简练(还可以支撑 perl 语法), Bugs 十分少的效劳器,Nginx 发动特别简单, 而且简直可以做到 7*24 不间断运转,即便运转数个月也不需要重新发动。你还可以不间断效劳的情况下进行软件版别的晋级 。