Nginx 是什么

Fanly 2019-08-07 11:43:56
问答

Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。 Nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。

Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。大部分 Web 服务器使用 Nginx,通常作为负载均衡器。Nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。

Nginx

Nginx 软件由伊戈尔·赛索耶夫创建并于 2004 年首次公开发布。 2011 年成立同名公司以提供支持。2019 年 3 月 11 日,Nginx 公司被 F5 Networks 以 6.7 亿美元收购。

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 终端代理。 从 OpenBSD 5.2 版本(2012 年 11 月 1 日)开始,Nginx 成为了 OpenBSD 基础系统的一部分,提供了替代 Apache 1.3 系统的替代方案, 但是后来被替换为 OpenBSD 自己的 httpd(8)。

可大量并行处理

Nginx 在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。

Nginx 与 Apache 相比

Nginx 的编写有一个明确目标就是超越 Apache Web 服务器的性能。 Nginx 提供开箱即用的静态文件,使用的内存比 Apache 少得多,每秒可以处理大约四倍于 Apache 的请求。 低并发下性能与 Apache 相当,有时候还低于,但是在高并发下 Nginx 能保持低资源低消耗高性能。还有高度模块化的设计,模块编写简单。配置文件简洁。

这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置( Apache 使用.htaccess 文件来完成这个工作,而 Nginx 并没有内置这样的功能)。 以前,向 Nginx 添加第三方模块需要使用静态链接的模块从源代码重新编译应用程序。在版本 1.9.11 中部分地克服了这一点,增加了动态模块加载。但是,模块仍然必须与 Nginx 同时编译,而不是所有的模块都与这个系统兼容——有些需要更老的静态链接过程。

Nginx 模块

整体采用模块化设计是 Nginx 的一个重大特点,甚至 http 服务器核心功能也是一个模块。旧版本的 Nginx 的模块是静态的,添加和删除模块都要对 Nginx 进行重新编译,1.9.11 以及更新的版本已经支持动态模块加载。

数据统计

截至 2017 年 3 月,中国注册域名总数的 9.65%使用 Nginx。

截至 2018 年 1 月,Nginx 服务或者代理了全球 30.46% 的网站。

PHP 集成

自 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 的方式并不可靠,稳定性有待提高。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Nginx

    Nginx转发是什么

    Nginx转发是Nginx服务器作为反向代理,将客户端请求透明地转发到后端服务器处理的过程。它在负载均衡、高可用性、SSL加密等方面发挥着重要作用,具有高性能、稳定性、灵活性和开源免费等优势,是构建现代化Web系统的核心组件之一。
  • Nginx JavaScript Nginx njs

    Nginx njs是什么

    Nginx njs是一个轻量级的JavaScript解释器,专门为Nginx设计。它允许开发者在Nginx配置中使用JavaScript语言来实现复杂的业务逻辑。njs的出现是为了解决原生Nginx配置难以满足的复杂需求。与Node.js不同,njs专注于Nginx的扩展,性能开销小,API与Nginx紧密集成。
  • Nginx Unit

    Nginx Unit是什么

    Nginx Unit是一个由Nginx F5公司开发的动态应用服务器,支持多种编程语言如Python、PHP和Ruby等。其主要特点是动态配置,允许用户在不重启的情况下更改配置,还提供完全隔离的应用环境,确保应用间不互相干扰。与Nginx不同,Unit专注于动态应用的部署和管理,而不处理静态内容。
  • Nginx

    Nginx代理缓存是什么

    Nginx代理缓存是一项重要的性能优化技术,通过在代理服务器上存储并直接提供先前请求的响应数据,从而加速网站和应用程序的响应时间、减轻服务器负载。配置Nginx代理缓存需要定义缓存路径、设置缓存规则和定期清理。虽然它提供了显著的性能提升,但不适合所有应用场景,特别是对于高度动态或个性化的内容。
  • F5 公司 Nginx 公司 Nginx Plus

    Nginx Plus是什么

    Nginx Plus是Nginx的商业版,在Nginx基础上添加了一些高级功能和支持。Nginx Plus提供出色性能、安全性和可伸缩性。其负载均衡、SSL/TLS支持、缓存和实时监控等功能使其在网站托管、微服务、CDN和应用程序交付等领域得到广泛应用。
  • Nginx

    Nginx节点的作用是什么

    Nginx节点是关键的网络中介,充当Web服务器、反向代理、负载均衡器和缓存服务器等多重角色。它提供高性能、高可用性、安全性和灵活性,适用于各种网络场景。配置Nginx节点是通过编辑文本文件,支持负载均衡策略、缓存设置、SSL加速等性能调优策略。