NGINX 作为一个高性能的 Web 服务器获得了当之无愧的声誉。 我想很多人都意识到 NGINX 也可以用作反向代理,但他们可能没有意识到它是一个多么强大的反向代理。
首先让我们回顾一下并问一下,什么是代理服务器? 我认为维基百科有一个很好的定义:
因此,代理服务器位于客户端和托管客户端所需数据的实际服务器之间。 对于客户端来说,代理服务器似乎是实际的后端服务器,而对于后端服务器来说,代理服务器看起来像客户端。 为了定义反向代理服务器,我们回到维基百科:
不同之处在于,代理服务器位于客户端和一个后端服务器之间,而反向代理服务器位于一个或多个后端服务器的前面,并决定对每个请求使用哪一个后端服务器。
为什么要使用反向代理服务器? 有很多好处:
NGINX Plus 为 NGINX Open Source 著名的 Web 服务器功能引入了更多功能,使 NGINX Plus 成为一个功能齐全的应用交付控制器 (ADC),能够取代专有硬件设备。
以下只是 NGINX Plus 中的一些功能。
有多种负载均衡算法可供选择,包括加权和非加权。 还支持会话持久性。 NGINX Plus 可以对 HTTP、HTTPS、WebSocket、FastCGI、memcached、SCGI、SPDY [已被 HTTP/2 取代,但 NGINX Plus 也能对其进行负载均衡] 和 uwsgi 进行负载均衡。 阅读更多。
支持对后端服务器健康状况的被动和主动监控。 如果 NGINX Plus 无法连接到某个节点,则该节点将被标记为关闭。 还可以配置主动健康检查以针对后端节点定期运行。 此外,可以使用慢启动功能,以便 NGINX Plus 缓慢地增加到刚刚上线的节点的流量,以避免因突发的大量流量而导致节点不堪重负。 阅读更多。
可以根据请求的任何部分进行流量路由,例如客户端 IP 地址、主机名、URI、查询字符串、标头等。
请求或响应的任何部分都可以修改,包括标头、正文和 URI。NGINX Plus 还可以添加和删除标头。 阅读更多。
响应可以被缓存,并且您可以配置要缓存的内容类型以及缓存时间。 您还可以清除缓存中的项目。 阅读更多。
支持 Gzip 压缩,可以细粒度地控制压缩哪些内容以及何时使用压缩。 阅读更多。
支持SSL/TLS解密和加密,并且可以使用不同的证书对多个域名进行解密。 阅读更多。
以 JSON 格式编码的 NGINX Plus 统计数据可通过简单的 HTTP 请求获取。 提供了仪表板网页来显示统计信息,或者您可以将它们提供给自定义或第三方监控工具,可以配置自定义格式的日志以进行本地日志记录和导出到系统日志。 阅读更多。
NGINX 还有很多功能,比如支持视频流、邮件代理支持、GeoIP 支持、无停机平稳重启和升级、流量整形、连接限制等等。 如需了解更多信息,请访问nginx.com和nginx.org 。
“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”