Nginx
Nginx(发音同「engine X」)是异步框架的網頁伺服器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由俄羅斯程式設計師伊戈爾·賽索耶夫开发,并于2004年首次公开发布[7]。2011年成立同名公司以提供支持服务[8]。2019年3月11日,Nginx公司被F5网络公司以6.7億美元收购[9]。 Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx[10],通常作为负载均衡器。[11] 特点Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion Passenger模块的动态HTTP内容,并可作为软件负载均衡器。[12] Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构[13]可以在高负载下提供更可预测的性能[14]。 Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(≤2.2)的Apache不同,Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。在Linux作業系統下,Nginx使用epoll事件模型,得益於此,Nginx在Linux作業系統下效率相當高。同時Nginx在OpenBSD或FreeBSD作業系統上採用類似於epoll的高效事件模型kqueue。 根据Netcraft在2016年11月网络服务器调查[15],Nginx被发现是所有“活跃”站点(被调查站点的18.22%)和百万最繁忙站点(被调查站点的27.83%)中使用次数最多的Web服务器。根据W3Techs的数据,前100万个网站中的37.7%,前10万个网站中的49.7%,以及前10000个网站中的57.0%被使用[16]。据BuiltWith统计,在全球前10000个网站中,有38.2%的网站使用Nginx[17]。维基百科使用Nginx作为其SSL終端代理[18]。从OpenBSD 5.2版本(2012年11月1日)开始,Nginx成为了OpenBSD基础系统的一部分,提供了替代Apache 1.3系统的替代方案[19],但是后来被替换为OpenBSD自己的httpd(8)[20]。 可大量并行處理Nginx在官方測試的結果中,能夠支援五萬個并行連接,而在實際的運作中,可以支援二萬至四萬個并行連接。[來源請求] 与Apache相比Nginx的编写有一个明确目标就是超越Apache Web服务器的性能[21]。Nginx提供开箱即用的静态文件,使用的内存比Apache少得多,每秒可以处理大约四倍于Apache的请求[22]。 在低并发下Nginx的性能与Apache相当(有时候还低于),但是在高并发下Nginx能保持低资源低消耗高性能。Nginx的优点还包括:高度模块化的设计,模块编写简单,以及配置文件简洁。 这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置( Apache使用.htaccess文件来完成这个工作,而Nginx并没有内置这样的功能)[23]。以前,向Nginx添加第三方模块需要使用静态链接的模块从源代码重新编译应用程序。在版本 1.9.11 中部分地克服了这一点,增加了动态模块加载。但是,模块仍然必须与Nginx同时编译,而不是所有的模块都与这个系统兼容——有些需要更老的静态链接过程[24]。 相比起在Linux下的Nginx,在Windows Server下的Nginx的稳定性较差,而Apache对两者都有较好的支持。[25] Nginx模块整体采用模块化设计是Nginx的一个重大特点,甚至http服务器核心功能也是一个模块。旧版本的Nginx的模块是静态的,添加和删除模块都要对Nginx进行重新编译,1.9.11以及更新的版本已经支持动态模块加载。[來源請求] 数据统计截至2017年3月,中国注册域名总数的9.65%使用Nginx。[26] 截至2018年1月,Nginx服务或者代理了全球30.46%的网站。[27] PHP整合自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上 PHP-FPM不支持Windows平台,由于没有fastcgi进程管理器管理 參考文獻
另请参阅外部链接 |