Nginx("engine x")是俄罗斯人Igor Sysoev(伊戈尔·塞索耶夫)编写的一款高性能的HTTP和反向代理服务器。Nginx能够选择高效的epoll(Linux2.6内核)、kqueue(FreeBSD)、eventport(Solaris 10)作为网络I/O)模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达5000个并发连接数的相应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。
选择Nginx的理由
它可以支持高并发连接
官方测试Nginx能够支撑5万并发连接,在实际生产环境中可支撑2~4万并发连接数。这得益于Nginx使用了最新的epoll(Linux2.6内核)和kqueue(FreeBSD)网络I/O模型。
内存消耗少
同等硬件环境下,Nginx的处理能力相当于Apache的5~10倍。
成本低廉
Nginx为开源软件,采用的是2-clause BSD-like协议,可以免费使用,并且可用于商业用途。
BSD开源协议是一个给使用者很大自由的协议。协议之处可以自由使用、修改源代码,也可以将修改后的代码作为开源或专有转件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发时,须满足三个条件:
(1) 如果再发布的产品中包含源代码,则源代码中必须带有原来代码中的BSD协议;
(2) 如果再发布的是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议;
(3) 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
配置文件非常简单
支持Rewrite重写规则
能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组。
内置的健康检查功能
如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问。
节省带宽
支持GZIP压缩,可以添加浏览器本地缓存的Header头。
稳定性高
用于反向代理,宕机的概率微乎其微。
支持热部署
Nginx支持热部署。它的启动特别容易,并且几乎可以7*24小时不间断运行,即使运行数个月也不需要重新启动。能够在不间断服务的情况下,对软件版本进行升级。