📜  NGINX简介

📅  最后修改于: 2021-01-07 05:55:00             🧑  作者: Mango

什么是NGINX?

  • NGINX的发音为“ engine-ex”。
  • 它是一种开源,快速,轻巧和高性能的Web服务器,可用于提供静态文件。
  • NGINX被认为是继Apache Web服务器和Microsoft IIS之后的流行Web服务器。
  • 在其初始版本中,NGINX可用于HTTP Web服务。但是,今天,它还可以用作HTTP,HTTPS,SMTP,IMAP,POP3协议的反向代理服务器,另一方面,它还可以用于HTTP负载平衡器,HTTP缓存以及IMAP,POP3和SMTP。
  • NGINX改善了内容和应用程序交付,提高了安全性,并促进了Internet上最繁忙的网站的可伸缩性和可用性。
  • 简而言之,我们可以说Nginx只是在Web服务器中用于处理并发请求的一种软件。
  • 以前,我们曾经在Web服务器上安装Apache来处理这些功能,但是随着世界的发展,一次又一次地增长和需求更多,术语“并发”问世,而nginx就是为同一件事而推出的。
  • Nginx的是由Igor Sysoev为2004年10月作为一个试图回答的问题C10K创建,与第1公开发行。 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上托管多个域名,同时使用不同NodeJ,Go和Java的组合在幕后提供独立的Web服务。

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

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

NGINX如何工作?

在了解NGINX的过程之前,让我们看一下Web服务器的工作方式。当我们请求打开网页时,浏览器会与服务器联系。然后,服务器在页面中查找请求的文件,并将其发送到浏览器。这是请求的唯一最简单的工作。

上面的示例也被视为单线程。传统上,像Apache这样的Web服务器会为每个请求创建一个线程,但是Nginx不能那样工作。 Nginx使用异步的,事件驱动的架构执行。它巧妙地跟踪流程事件。

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

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

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

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

由于工作人员连接最多可以处理1024个类似的请求。因此,Nginx可以轻松处理数千个请求。这也是Nginx成为电子商务,搜索引擎和云存储等繁忙网站的出色服务器的原因。

NGINX的功能

Nginx的一些功能如下:

  • 反向缓存代理
  • IPV6
  • 负载均衡
  • 网络插座
  • 处理静态文件,索引文件和自动索引
  • 具有缓存的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不断添加功能以实现完美的应用程序交付。