本文概述
- 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问题。 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不断添加功能以实现完美的应用程序交付。