什么是 NGINX?

17 Mar 2025 | 4 分钟阅读
  • NGINX 的发音为 "engine-ex"。
  • 它是一个开源的、快速的、轻量级和高性能的 Web 服务器,可以用来服务静态文件。
  • NGINX 被认为是继 Apache Web 服务器和微软的 IIS 之后流行的 Web 服务器。
  • 在其最初的版本中,NGINX 的功能是为 HTTP Web 服务。 然而,今天,它也用作 HTTP、HTTPS、SMTP、IMAP、POP3 协议的反向代理服务器,另一方面,它还用于 HTTP 负载平衡器、HTTP 缓存以及 IMAP、POP3 和 SMTP 的电子邮件代理。
  • NGINX 提高了内容和应用程序的交付速度,提高了安全性,并为互联网上最繁忙的网站提供了可扩展性和可用性。
  • 简而言之,我们可以说 Nginx 只是 Web 服务器中使用的一种软件,用于服务并发请求。
  • 以前我们过去在 Web 服务器中安装 Apache 来处理这些功能,但随着世界的发展和对一次性提出更多要求的世界,并发性这个术语进入了世界,而 nginx 则是为此而推出的。
  • Nginx 由 Igor Sysoev 创建,于 2004 年 10 月首次公开发布,旨在解决 C10k 问题。 其中 C10k 是同时管理 10,000 个连接的挑战。 今天,Web 服务器必须处理的连接甚至更多。 因此,nginx 提供了事件驱动和异步架构。 此功能使 nginx 成为可伸缩性和速度最可靠的服务器。
  • 一些使用 Nginx 的知名公司包括 IBM、Google、Atlassian、Autodesk、GitLab、DuckDuckGo、T-Mobile、Microsoft、Adobe、Salesforce、VMware、LinkedIn、Cisco、Twitter、Apple、Intel、Facebook 等。

为什么要使用 NGINX?

NGINX 提供各种服务,例如反向代理、负载平衡器和速率限制网络服务。 如果我们有多个 Web 服务监听不同的端口,并且我们需要一个公共端点来在内部重新路由请求,那么反向代理非常有用。 这将允许我们在端口 80 上托管多个域名,同时使用不同的 NodeJs、Go 和 java 的组合来为幕后的独立 Web 服务提供支持。

Nginx 可以处理日志记录、黑名单、负载平衡和提供静态文件,而 Web 服务则专注于他们需要做的事情。

Nginx 的配置比 Apache httpd 更容易。 Nginx 专为高并发而设计,速度非常快。

NGINX 如何工作?

在了解 NGINX 的过程之前,让我们先看看 Web 服务器是如何工作的。 当我们请求打开一个网页时,浏览器会联系服务器。 然后服务器查找该页面所需的 文件并将其发送到浏览器。 这只是最简单的请求工作。

上面的示例也被认为是单线程的。 传统上,像 Apache 这样的 Web 服务器会为每个请求创建一个单独的线程,但 Nginx 并非以这种方式工作。 Nginx 使用异步事件驱动架构执行。 它巧妙地遵循进程的事件。

Nginx 将其工作划分为工作进程工作连接。 在这里,工作连接用于管理用户在 Web 服务器上发出的请求和获得的响应; 同时,这些请求被传递到其父进程,该父进程被称为工作进程。

让我们看一个 Nginx 服务器处理并发 MP3 和 MP4 文件请求的示例:-

What is NGINX

从上图中,我们可以看到单个工作连接一次可以处理大约 1024 个连接。 这是工作连接的最佳能力。 根据我们拥有的服务器类型,Nginx 中可能有“n”个工作进程,并且每个工作进程处理不同的作业,以便它可以处理更多的并发请求。

最后,工作进程将请求传输到 Nginx 主进程,该进程仅直接响应唯一请求。

由于工作连接可以处理多达 1024 个类似请求。 因此,Nginx 可以毫无困难地处理数千个请求。 这也是 Nginx 成为电子商务、搜索引擎和云存储等繁忙网站的优秀服务器的原因。

NGINX 的功能

Nginx 的一些功能如下

  • 具有缓存的反向代理
  • IPV6
  • 负载均衡
  • Web Sockets
  • 处理静态文件、索引文件和自动索引
  • 支持具有缓存的 FastCGI
  • URL 重写和重定向

NGINX 和 NGINX Plus 可以为您做什么?

Nginx 和 Nginx Plus 是高流量网站(如 Netflix、Dropbox 和 Zynga)使用的最佳 Web 服务器和应用程序交付解决方案。 像 Google、Netflix、Twitter、Facebook 等最繁忙的网站都依赖 Nginx 和 Nginx Plus 来安全、可靠和快速地交付他们的内容。

  • Nginx 使硬件负载平衡器过时 - Nginx 是开源的,比硬件负载平衡器更便宜且更可配置,并且专为现代云架构而设计。
    Nginx Plus 提供对即时重新配置的支持,并与现代 DevOps 工具集成,以方便监控。
  • NNginx 是一种多功能工具 - 通过使用 Nginx,我们可以将相同的工具用作我们的负载平衡器、内容缓存、反向代理和 Web 服务器。 它可以最大限度地减少组织需要维护的工具数量。
    Nginx Plus 包括对客户支持的快速响应,因此我们可以轻松获得帮助来诊断我们堆栈中使用 Nginx Plus 和 Nginx 的任何部分。
  • NGINX 不断发展。 在过去的十年中,NGINX 一直处于现代 Web 开发的最前沿,并帮助引领了从 HTTP/2 到微服务支持的一切。
    随着 Web 应用程序的开发和交付不断发展,NGINX Plus 不断添加功能以实现完美的应用程序交付。

下一主题Apache vs NGINX