Nginx

✍ dations ◷ 2025-01-23 14:50:43 #Nginx
Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks(英语:F5 Networks)以6.7亿美元收购。Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion Passenger模块的动态HTTP内容,并可作为软件负载均衡器。Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(≤ 2.2)的Apache不同,Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。根据Netcraft在2016年11月网络服务器调查,Nginx被发现是所有“活跃”站点(被调查站点的18.22%)和百万最繁忙站点(被调查站点的27.83%)中使用次数最多的Web服务器。根据W3Techs的数据,前100万个网站中的37.7%,前10万个网站中的49.7%,以及前10000个网站中的57.0%被使用。据BuiltWith统计,在全球前10000个网站中,有38.2%的网站使用Nginx。维基百科使用Nginx作为其SSL终端代理(英语:SSL termination proxy)。从OpenBSD 5.2版本(2012年11月1日)开始,Nginx成为了OpenBSD基础系统的一部分,提供了替代Apache 1.3系统的替代方案,但是后来被替换为OpenBSD自己的httpd(8)。Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。Nginx 的编写有一个明确目标就是超越 Apache Web 服务器的性能。Nginx 提供开箱即用的静态文件,使用的内存比 Apache 少得多,每秒可以处理大约四倍于 Apache 的请求。 在低并发下 Nginx 的性能与 Apache 相当(有时候还低于),但是在高并发下 Nginx 能保持低资源低消耗高性能。Nginx 的优点还包括:高度模块化的设计,模块编写简单,以及配置文件简洁。这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置( Apache 使用.htaccess 文件来完成这个工作,而 Nginx 并没有内置这样的功能)。以前,向 Nginx 添加第三方模块需要使用静态链接的模块从源代码重新编译应用程序。在版本 1.9.11 中部分地克服了这一点,增加了动态模块加载。但是,模块仍然必须与 Nginx 同时编译,而不是所有的模块都与这个系统兼容——有些需要更老的静态链接过程。相比起在Linux下的Nginx,在Windows Server下的Nginx的稳定性较差。而Apache对两者都有较好的支持。整体采用模块化设计是Nginx的一个重大特点,甚至http服务器核心功能也是一个模块。旧版本的Nginx的模块是静态的,添加和删除模块都要对Nginx进行重新编译,1.9.11以及更新的版本已经支持动态模块加载。截至2017年3月,中国注册域名总数的9.65%使用 Nginx。截至2018年1月,Nginx 服务或者代理了全球 30.46% 的网站。自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。PHP-FPM不支持Windows平台,由于没有fastcgi进程管理器管理php-cgi.exe,因此一旦php-cgi.exe崩溃退出,前端将失去响应,这时Nginx会返回“The page you are looking for is temporarily unavailable. Please try again later.”的错误信息。因此在Windows上用Nginx和php-cgi.exe组合来运行PHP的方式并不可靠,稳定性有待提高。

相关

  • 止痛药镇痛药(Analgesic)是指能缓解痛的一类药物。该词起源于希腊语中的"an"(意即“没有”)和"algos"(意即“痛”)。镇痛药通过不同的机理作用于中枢和周围神经系统,对痛觉中枢有选择性抑
  • 波罗的-斯拉夫语族波罗的-斯拉夫语族(Baltic-Slavic language)是印欧语系中波罗的语族和斯拉夫语族的合称。波罗的语族的语言和斯拉夫语族的语言共同点较多,两者较为接近。但波罗的诸语和斯拉夫
  • 核糖体蛋白质核糖体蛋白质(Ribosomal Protein,简称“核糖体蛋白”或“RP”)是参与构成核糖体的所有蛋白质的统称。由于核糖体蛋白质需要高浓度的盐溶液和强解离剂(如含高浓度Mg2+的67%的CH3C
  • 染料染料是有颜色的物质但有颜色的物质并不一定是染料。作为染整工业基础,必须能够使一定颜色附着在纤维上。且不易脱落、变色。染料通常溶于水中,一部分的染料需要媒染剂使染料能
  • 黍部,为汉字索引中的部首之一,康熙字典214个部首中的第二百〇二个(十二划的则为第二个)。就繁体和简体中文中,黍部归于十二划部首。黍部只以左方为部字。且无其他部首可用者将部
  • 欧洲野猫欧洲野猫(学名:Felis silvestris silvestris)是一种小型猫科动物,可见于西欧、中欧、东欧、苏格兰和土耳其;在斯堪的纳维亚、冰岛、英格兰、威尔士以及爱尔兰则已灭绝。欧洲野猫
  • ···氢键是分子间作用力的一种,是一种永久偶极之间的作用力,氢键发生在已经以共价键与其它原子键结合的氢原子与另一个原子之间(X-H…Y),通常发生氢键作用的氢原子两边的原子(X、Y)都是
  • 南极南极(英语:south pole)是根据地球的旋转方式决定的最南点。它通常表示地理上的南极区域,有一个固定的位置。按照国际上通行的概念,南纬60度以南的地区称为南极,它是南大洋及其岛屿
  • 键级键序为成键轨道中的电子数与反键轨道中的电子数之差的一半。若将其写成数学式则可表示成:b = n −
  • 积分积分是微积分学与数学分析里的一个核心概念。通常分为定积分和不定积分两种。直观地说,对于一个给定的正实值函数 f ( x )