博客 | NGINX

宣布 NGINX Plus Release 5

NGINX-F5-horiz-black-type-RGB 的一部分
欧文·加勒特缩略图
欧文·加勒特
2014 年 12 月 2 日发布

我们非常高兴地宣布 NGINX Plus Release 5 (R5) 现已推出。 此版本汇集了 NGINX 开源发行版中最近发布的功能以及仅在 NGINX Plus 中提供的许多功能。

主要的新功能是针对通用基于 TCP 的协议(例如数据库、RPC 和聊天协议)进行负载均衡NGINX Plus R5 中的相关 TCP 负载均衡博客文章提供了完整的详细信息。

NGINX Plus R5 还对负载均衡和缓存进行了许多改进。

如果您正在寻找 Web 加速、负载均衡或应用交付解决方案,或者具有附加监控管理API 的完全支持的 Web 服务器,请考虑NGINX Plus

TCP 负载平衡

NGINX Plus R5 引入了 TCP 连接的负载均衡,在模块中实现。 您可以对各种非 HTTP 连接进行负载均衡,例如 MySQL 和 SSL/TLS(无需解密)。 您甚至可以通过将现有的邮件代理模块与新的模块相结合来实现负载均衡并管理邮件协议(SMTP、POP3、IMAP)。

TCP 负载均衡为一系列基于 TCP 的协议提供高可用性

此版本提供了一系列负载平衡方法(循环、最少连接、哈希、IP 哈希)、对连接参数的控制、通过内联健康检查实现的高可用性、恢复服务器的慢启动,以及手动指定服务器为活动、备份或关闭的能力。

有关更多信息,请查看我们博客上的NGINX Plus R5 中的 TCP 负载平衡和 NGINX Plus 管理指南中的TCP 负载平衡。 这是 NGINX Plus 独有的功能。

更好地控制负载平衡的用户会话

有时您需要关闭上游节点以进行维护或升级。 借助版本 5 中的新会话耗尽功能,您可以向 NGINX Plus 发出信号,使其不要向该节点发送新连接,而是维持该节点上已建立的会话,直到它们完成。

会话耗尽会使服务器停止服务,而不会中断现有用户会话

您可以使用实时活动监控来监控已耗尽节点上的流量,并等待将其脱机,直到您确信用户会话已完成:

# 返回上游组“backends”中的服务器 1 最后一次使用时的 Unix 纪元时间(以秒为单位,四舍五入到毫秒)$ curl http://localhost:8080/status/upstreams/backends/1/selected # 计算服务器空闲了多长时间(以毫秒为单位)$ expr `date +%s000` - `curl -s http://localhost:8080/status/upstreams/backends/1/selected`

[编辑器 – 上述命令使用 NGINX Plus Status 模块(由status指令启用)。 该模块已被NGINX Plus Release 13 (R13)及更高版本中的NGINX Plus API替换并弃用,并且在 NGINX Plus R15 之后将不再可用。]

用于跟踪用户会话的粘性 cookie机制已更新,因此到期时间适用于会话中最近的请求,而不是第一个请求。 这意味着会话跟踪更加准确。

会话耗尽和粘性 cookie 功能仅在 NGINX Plus 中可用。

节点发生故障时改进流量控制

当上游组中的服务器无法响应请求时,NGINX Plus 会自动在组内的其他服务器上重试该请求。 新的proxy_next_upstream_triesproxy_next_upstream_timeout指令分别限制重试次数和 NGINX 可以继续重试的时间,让您可以更好地控制此行为。

该功能在 NGINX 1.7.5 中发布,适用于 HTTP、FastCGI、uWSGI、SCGI 和 memcached 流量的代理。

缓存内容支持 HTTP Vary标头

一些 Web 服务器根据请求资源的客户端类型提供资源的不同版本。 例如,当浏览器请求网站主页时,服务器会提供带有高分辨率图像的版本,但当客户端是移动设备时,它会提供没有图像的版本。 这样的服务器可以在其响应中设置Vary标头,以告诉缓存代理它正在使用客户端请求中的哪些标头来确定要发送的版本(并且暗示代理在确定要发送哪个版本的缓存资源时需要使用哪些标头)。

一个常见的用例是区分同一资源的压缩版本和未压缩版本;在这种情况下, Vary: 接受编码 服务器响应中的标头告诉缓存使用 接受编码 客户端请求中的标头来确定要交付哪个版本。

NGINX Plus 现在完全支持Vary标头,以正确缓存同一资源的多个变体。 此功能在 NGINX 1.7.7 中引入。

改进了对从缓存提供字节范围的支持

客户端可以通过在请求中指定适当的字节范围来获取文件的某个部分,例如视频下载中的某个片段或 PDF 文档中的某个页面。 NGINX Plus 可以遵循这些请求并将缓存资产中的字节范围传送到客户端,即使内容的原始服务器不支持字节范围。

NGINX Plus 第一次收到文件请求(完整文件或字节范围)时,它会从原始服务器请求整个文件并缓存它。 然后,NGINX Plus 满足来自缓存的字节范围请求。 这减少了上游(原始)服务器的负载。

该功能在 NGINX 1.7.7 中引入,并通过proxy_force_ranges指令启用。

更好地控制上行带宽

新的proxy_limit_rate指令限制 NGINX Plus 从上游服务器读取数据的速度。 这可以防止一个大请求消耗 NGINX 和原始服务器之间的所有带宽。 当启用缓存时,它可以有效地控制内容写入磁盘缓存的速率,这在磁盘表现出较高的写入延迟时很有用。

该指令在 NGINX 1.7.7 中引入。

NGINX Plus R5 中的其他变化

第三方RTMP 模块已添加到NGINX Plus Extras包中。

NGINX Plus 现已适用于 Ubuntu 14.10、Ubuntu 14.04 上的 ARMv8(aarch64)以及 SUSE Linux Enterprise Server 12。

升级或尝试 NGINX Plus

我们强烈建议我们的 NGINX Plus 客户尽快更新到 Release 5。 您将获得大量修复和改进,如果您需要提出支持单,它将帮助我们为您提供帮助。 您可以在客户门户上找到安装和升级说明。

如果您还没有尝试过 NGINX Plus,请立即开始30 天免费试用,并开始了解 NGINX Plus 如何帮助您扩展和交付您的应用。


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”