NGINX是用于 Web 服务、反向代理、缓存、负载均衡、媒体流等的开源软件。 它最初是一个为实现最高性能和稳定性而设计的网络服务器。 除了 HTTP 服务器功能外,NGINX 还可以用作电子邮件(IMAP、POP3 和 SMTP)的代理服务器以及 HTTP、TCP 和 UDP 服务器的反向代理和负载均衡器。
Igor Sysoev 最初编写 NGINX 是为了解决C10K 问题,该术语于 1999 年创造,用来描述现有 Web 服务器在处理大量( 10K )并发连接( C )时遇到的困难。 NGINX凭借其事件驱动、异步架构,彻底改变了服务器在高性能环境中的运行方式,并成为了最快的 Web 服务器。
在 2004 年开源该项目并观察其使用量呈指数级增长后,Sysoev 共同创立了 NGINX, Inc.,以支持 NGINX 的持续开发,并将NGINX Plus作为商业产品进行营销,并为企业客户设计附加功能。 NGINX, Inc. 于 2019 年成为F5, Inc.的一部分。 如今,NGINX 和 NGINX Plus 可以处理数十万个并发连接,并且比任何其他服务器都能为互联网上最繁忙的网站提供支持。
NGINX 背后的目标是创建最快的 Web 服务器,而保持卓越性仍然是该项目的核心目标。 NGINX 在衡量 Web 服务器性能的基准测试中始终击败 Apache 和其他服务器。 然而,自 NGINX 首次发布以来,网站已经从简单的 HTML 页面扩展到动态、多方面的内容。 NGINX 也随之成长,现在支持现代 Web 的所有组件,包括 WebSocket、HTTP/2、gRPC 和多种视频格式(HDS、HLS、RTMP 等)的流式传输。
尽管 NGINX 作为最快的 Web 服务器而闻名,但事实证明,除了提供内容之外,其可扩展的底层架构对于许多 Web 任务来说都是理想的选择。 由于它可以处理大量连接,NGINX 通常用作反向代理和负载均衡器来管理传入流量并将其分发到较慢的上游服务器 - 从传统数据库服务器到微服务。
NGINX 也经常被放置在客户端和第二个 Web 服务器之间,用作 SSL/TLS 终止器或 Web 加速器。 NGINX 作为中介,可以有效地处理可能减慢 Web 服务器速度的任务,例如协商 SSL/TLS 或压缩和缓存内容以提高性能。 使用从 Node.js 到 PHP 的任何语言构建的动态网站通常将 NGINX 部署为内容缓存和反向代理,以减少应用服务器上的负载并最有效地利用底层硬件。
NGINX Plus 和 NGINX 是 Dropbox、Netflix 和 Zynga 等高流量网站使用的一流的 Web 服务器和应用交付解决方案。 全球有超过3.5 亿个网站依靠 NGINX Plus 和 NGINX Open Source 快速、可靠、安全地传递其内容。