Nginx初阶——认识Nginx

Nginx的应用场景

Nginx常见的应用场景以下图所示:
前端

静态资源服务

曾经的Web开发并非彻底的先后端分离,最明显的例子就是JSP,基本是先后端不分离,直到后来Spring生态体系和前端框架的发展,Web应用程序成了单纯的提供应用接口服务的程序,所以静态资源就不必交给应用服务器去处理,而是交给Nginxnginx

反响代理服务

Nginx的缓存加速和负载均衡,极大提升了总体系统的并发能力,Nginx的并发相对于应用服务器要强大太多数据库

API服务

Nginx里面提供了数据库服务、缓存、应用服务相关API,模块化设计。好比数据库服务器的并发性能原本就远高于应用服务器,若是直接让应用服务器去操做数据库的话无疑是下降了系统的性能,因而Nginx提供了数据库访问的API,提高系统总体性能后端

Nginx出现的历史背景

如今愈来愈多的网络设备接入,尤为是在咱们国家这样的人口大国,每一年双十一这样的并发量不是单纯的应用服务器可以撑得住的。虽然计算机硬件在不断升级,可是这种问题就目前来看从硬件的角度发生的改变是微乎其微的,早期的Apache服务器维护一个链接就须要一个进程来维护,这样作的代价就是从硬件的角度就已经限制了服务器的并发。
即便从8核处理器换到16核心处理器并发性能也不会获得成倍的提高,由于操做系统和软件没作好服务和多核架构的准备!api

下面这张图是最近几年服务器市场份额变化图:

虽然如今排名第二,可是在一些追求长期稳定的服务中一般不会更换服务器,就好比学校的教务网站,ASP.NET实现的,虽然每次网上选课系统都会崩盘,可是学校为了稳定性不会轻易更换服务架构的。因此表面看起来Apache的使用高于Nginx的,可是每每新增的服务器都会使用Nginx缓存

Nginx的优势

高并发须要条件就是每一个连接须要更小的内存,吃更少的CPU资源。Nginx作到了,从上图中能够看到,在并发量很低的时候Nginx的性能其实还不如其余的服务器,可是Nginx在高并发量的时候,性能仍然很稳定,而其余的服务器的性能会严重降低,因此Nginx的高并发性能成为了人们选择Nginx的理由前端框架

Nginx采起了分阶段资源分配技术,使得它的CPU与内存占用率很是低。Nginx官方表示保持10000个没有活动的链接,它只占2.5M内存服务器

Nginx与其余服务器的对比
网络

Nginx的组成

Nginx版本发布

从这个图上呢也能够看出来Nginx的版本迭代状况,绿色的线表示Nginx的Bug修复状况,Bug愈来愈少也一样是说明了Nginx愈来愈稳定了,2009年Nginx开始支持Windows操做系统,2011年才成立Nginx的商业公司…...架构

Nginx版本选择

  • 免费开源版本 nginx.org
  • 商业版 nginx.com
  • 阿里巴巴的Tengine
  • 免费版OpenResty
  • 商业版OpenResty