NGINX 是一款开源软件,用于 Web 服务、反向代理、缓存、负载均衡、媒体流等。它最初是一款 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 服务器,而保持卓越性能仍是该项目的核心目标。在衡量 Web 服务器性能的基准测试中,NGINX 的表现始终优于 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 是同类型最佳 Web 服务器和应用交付解决方案,被 Dropbox、Netflix 和 Zynga 等高流量网站广泛使用。全球有超过 3.5 亿个网站依靠 NGINX Plus 和 NGINX Open Source 快速、可靠、安全地交付内容。