Nginx (engine x)是两个开放源码、高效能的 HTTP 和逆向全权 Web 服务项目器,同时也提供更多了 IMAP/POP3/SMTP 服务项目”。
关键点:开放源码、高效能、能逆向全权。
Nginx 选用情景
Nginx 的选用情景如下表所示:
HTTP 服务项目器
Nginx 做为 Web 服务项目器能独立提供更多 Http 服务项目。另外,我们经常透过 Nginx 做为动态天然资源服务项目器来出访服务项目器上的动态天然资源,比如说对新一代炙手可热的其间端分立构架,后端打赢TNUMBERZG直接放在某一门牌号,在 Nginx 实用性后能透过 Nginx 来出访PS3上的后端网页。
逆向全权
逆向全权(Reverse Proxy)方式是指用全权服务项目器来接受 Internet 上的相连允诺,然后将允诺发送到外部互联网上的服务项目器,并将从服务项目器上得到的结果回到给 Internet 上允诺相连的应用程序,此时全权服务项目器对内就表现为两个逆向全权服务项目器。这种的益处是,将不曝露外部的服务项目门牌号,只统一选用两个公用出口,透过 URI 相匹配转寄送不同的外部服务项目处置允诺。
阻抗平衡
阻抗平衡也是 Nginx 的两个低频选用情景,对上游存有的数个完全相同服务项目,能将允诺选用这种思路(乱数、HTTP、权重股)寄送适当的服务项目处置。这种由于数个完全相同服务项目的存有,能同时实现高需用机能,在两个服务项目不需用时,Nginx 会手动发现并将其列作服务项目软件产业,将允诺发送到正常的服务项目进行处置。
服务器端应用程序
如前所述服务器端应用程序,Nginx 能完成各式各样繁杂的机能,多方位满足用户开发人员的设想。比如说在 Nginx 中导入 lua 组件,能同时实现对 Http 允诺更mammalian的限制,包括速度限制、开闭、奇偶校验证书之类。先期,在 Nginx 上发展出来的 OpenResty 已经应用到了微服务项目交换机方向。
为什么选择 Nginx
1. 高效能、高稳定、低天然资源耗用
Nginx 的民主化数学模型选用了 Master/Workers 民主化池的监督机制,即通常情况下,Nginx 会开启两个 Master 民主化(当然,也能无 master 民主化)和数个 Worker 民主化对内提供更多服务项目。Master 民主化是监控民主化,本身并不处置具体的 TCP 和 HTTP 允诺,只负责接受 UNIX 信号,管理 Worker 民主化,类似于工地的包工头。
Worker 民主化是比较累的,负责处置应用程序的相连允诺,它充分利用了 Linux 系统中的 epoll、kqueue 等监督机制,高效处置 TCP 和 HTTP 允诺,利用这些特点,Nginx 充分挖掘了服务项目器的潜能,让服务项目器更快响应用户允诺。
一般情况下,10000 个非活跃的 HTTP Keep-Alive 相连在 Nginx 中仅仅耗用 2.5M 内存,这是 Nginx 支持高并发相连的基础,体现了 Nginx 高效能的特点。另外,由于官方提供更多的组件都非常稳定,每个 Worker 民主化都相对独立,Woker 民主化出错时,Master 民主化会立马感知到并快速拉起新的 Worker 子民主化不间断提供更多服务项目,保证服务项目的稳定性。
nginx的民主化数学模型
2. 高可扩展性
Nginx 的构架设计是非常优秀的,极具扩展性,它完全由数个不同机能、不同层次、不同类型且耦合度极低的组件组成。
另外,我们还能在官方提供更多的组件上进行二次开发,例如 HTTP 组件,其中设计了 HTTP 过滤器组件,这种我们开发两个新的 HTTP 组件时,除了选用诸如 HTTP 核心组件、events 组件、log 组件等不同层次的组件,还能原封不动地复用大量已有的 HTTP 过滤器组件。
这种低耦合度的优秀设计,造就了 Nginx 庞大的服务器端组件,而且 Nginx 的组件都是嵌入到二进制的文件中执行的,这种使得服务器端组件同样具备极其优秀的性能,充分利用 Nginx 的高并发特性,因此许多高流量的网站都会在 Nginx 基础上开发符合自己业务特性的定制组件,而且开发成本低,效果好。
另外,对中小型企业来说,Nginx 开箱即用,其本身的高并发能力能满足用户企业的大部分业务,因此 Nginx 在绝大部分互联网企业中应用非常广泛。
3. 热部署
支持热部署机能是 Nginx 的两个特色,许多大型门户网站要求 24 小时不间断提供更多服务项目,一旦出现服务项目停止,容易造成用户投诉和用户流失。Nginx 由于其管理民主化和 Worker 民主化的分立设计,使得其能提供更多热部署机能,满足用户大型站点在 7×24 小时不间断服务项目的前提下升级 Nginx。
但要注意的是,Nginx 并不支持在不停止服务项目的情况下就更新实用性、更换日志文件等机能。Nginx 的热部署同时实现原理是,在不停止老民主化的前提下,终止其相连允诺,并开启新的 Worker 民主化处置新进来的相连允诺,再慢慢终止老的 Worker 民主化,同时实现新老交替。
4. 开放源码和免费
Nginx 和老大哥 Apache 一样开放源码且免费。在如今的时代,开放源码才能有力地成长,免费才能让更多的企业和个人开发者选用。 当然 Nginx 也有它的商业版本 Nginx plus,它有着更为丰富的机能和应用情景。然而免费版本的机能已经足够强大,加上服务器端层出不穷的应用程序组件,几乎能同时实现各种业务机能,再加上配合服务器端的语言集成(perl、lua等),对绝大多数企业和个人来说已经完全足够。
当然,Nginx 的优点绝对不止于此。它最核心地机能是:在支持高并发请求的同时保持高效的服务项目。而这一点正是广大开发者,也是各大企业迫切需要满足用户的需求,以应对日益庞大的国内互联网用户群体。
下一篇我们来说安装。