借助NGINX提升Azure应用性能与安全性

NGINX | 2023年10月17日

NGINXaaS for Azure支持企业在云中安全交付高性能应用。该服务由NGINX Plus提供支持,是一项完全托管式服务,已于2023年1月正式发布。自发布以来,我们持续为NGINXaaS for Azure添加新功能,并将在未来继续完善该服务。

本博客重点介绍一些最新的性能和安全功能,让您无需自行部署、维护和更新NGINX Plus实例,即可获得NGINX Plus带来的更多优势。要了解NGINXaaS for Azure及其整体功能的一般信息,请阅读《使用F5 NGINXaaS for Azure简化并加速云迁移》。

展示NGINXaaS for Azure架构的示意图。NGINX Plus和边缘路由位于环境的SaaS部分,而客户的计算、密钥存储、监控及其他服务则位于客户的Azure订阅中。

图1:NGINXaaS for Azure概览

使用mTLS保护上游流量

反向代理需要使用SSL/TLS加密公共互联网上的客户端流量,而服务器端则必须使用双向TLS(mTLS)进行身份验证并确保机密性。随着向零信任模式转变,还必须验证上游服务器流量是否遭到篡改或拦截。

服务器端TLS身份验证示意图。客户端和服务器端连接均已加密,NGINXaaS实例与应用服务之间也进行了双向身份验证。

图2:NGINXaaS中的mTLS

NGINXaaS for Azure现已支持使用NGINX指令和SSL/TLS证书来保护上游流量。借助这些指令,不仅可以通过mTLS保持上游流量加密,还可以验证上游服务器提供的证书是否由受信任的证书颁发机构签发且有效。

证书轮换

将TLS证书与NGINXaaS for Azure结合使用时,一个关键环节(这里的“关键”也暗指密钥)是通过Azure Key Vault(AKV)安全管理这些证书。AKV可保护敏感的加密材料,并允许NGINXaaS for Azure使用这些证书,同时防止密钥材料通过Azure门户被意外或故意泄露。

使用NGINXaaS和Azure Key Vault轮换证书的动画。现有证书的新版本加载到Azure Key Vault后,会自动轮换到NGINXaaS实例中。

图 3:使用 Azure Key Vault 轮换证书

NGINXaaS for Azure现在可以在AKV中的证书更新后,通过NGINX部署自动轮换证书。新版本的证书将在4小时内轮换到您的部署中。

HTTP/2代理(及其他协议选项)

闭上眼睛,回想一下1997年。那时,我们听着Chumbawamba的《Tubthumping》,穿着JNCO牛仔裤(加拿大朋友可能穿的是Modrobes),而HTTP/1.1也在这一年发布。当时,大多数最终用户通过拨号调制解调器接入互联网,网页仅包含几十个元素。就用户体验而言,带宽远比延迟更受关注。

25年后,仍有相当一部分Web应用使用HTTP/1.1交付内容,这可能会带来问题。虽然HTTP/1.1仍可正常工作,但每个连接一次只能交付一个资源。与此同时,现代Web应用在更新用户界面时可能会发出数百个请求。

尽管大多数用户可用的带宽已大幅增加,但数据传输速度受光速这一基本物理限制,提升并没有那么快。因此,所有这些请求的累积延迟可能会显著影响用户感知到的应用性能。现代浏览器会与同一服务器建立多个TCP连接,但每个连接上的请求仍按顺序处理,这意味着某个加载缓慢的资源可能会延迟其后的所有其他资源。

请查看仅使用HTTP/1.1加载时的F5主页:


图4:通过HTTP/1.1访问F5.com

看到这些灰色条了吗?浏览器在等待建立会话、因单个缓慢资源而阻塞,或等待新的TCP连接可用时,浪费了宝贵的时间。

启用HTTP/2后再试一次:


图5:同一请求,但使用HTTP/2

好多了。仍有少数资源加载较慢,但不会阻塞其他请求,等待队列相关延迟的时间也显著减少。HTTP/2保留了Web浏览器和服务器所熟悉的HTTP/1.1语义,同时增加了新功能,以解决导致应用性能体验不佳的部分原因(例如请求优先级、标头压缩和请求多路复用)。

鉴于差异如此明显,NGINXaaS for Azure现已支持通过HTTP/2处理客户端请求。客户端连接更容易受到较长往返时间的影响,因此可以利用HTTP/2降低延迟,同时无需更改上游服务器。

尽管Web应用行业的一些人可能不愿承认,但我们确实知道,除了HTTP之外,还有其他协议可供选择。因此,NGINX gRPC模块现在也已在NGINXaaS for Azure中提供。该模块提供了多项用于处理gRPC流量的配置指令,包括错误拦截、标头处理等。

对于非HTTP/gRPC流量,stream模块现已在NGINXaaS for Azure中提供。此模块支持TCP和UDP流量的代理和负载均衡。

支持第4层和第7层负载均衡

NGINXaaS for Azure现在既可用作第4层TCP/UDP云原生负载均衡器,也可用作第7层HTTP/HTTP云原生负载均衡器。这一点为何重要?无需部署两种不同的服务或负载均衡器,只需部署一个负载均衡器,并将其配置为同时在这两个层运行,即可简化云架构并降低成本。

可在此处了解相关配置。

更高容量(最高160个NCU)

NGINXaaS for Azure是一项按用量计费的服务,以小时为单位计量,并按月根据NGINX容量单位(NCU)结算。我们近期将部署容量从80 NCU提升至原来的两倍,达到160 NCU。客户可以先部署容量较小的20 NCU系统,并在工作负载增加时扩展至160 NCU。此外,客户也可以选择从一开始就部署最高160 NCU的系统。

新增NGINX Plus指令

为了让配置能够轻松从本地环境直接迁移到全托管云服务,我们新增了许多NGINX Plus指令。有关NGINXaaS for Azure支持的所有NGINX Plus指令,请参阅此处。

立即开始

我们始终致力于改进并拓展NGINX和F5技术的应用方式,帮助您随时随地保护、交付和优化每个应用及API。借助NGINXaaS for Azure新增的上述功能及其他新功能,更多Azure用户可以利用NGINX Plus解决各种应用和API问题,而无需承担管理额外虚拟机或容器基础设施的开销。

如需进一步了解NGINXaaS for Azure,建议查阅产品文档。如准备试用NGINXaaS for Azure,请访问Azure Marketplace,或联系我们,讨论您的用例。


分享
标签: F5 NGINX, Tech, Azure

相关博客文章

NGINX Plus R26 正式发布
NGINX | 2022/02/15

NGINX Plus R26 正式发布

NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
NGINX | 2022/02/10

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击

gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
NGINX | 2021/09/13

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划

了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。

NGINX Plus R19 正式发布
NGINX | 2019/09/03

NGINX Plus R19 正式发布

NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。

NGINX现已正式加入F5
NGINX | 2019/05/09

NGINX现已正式加入F5

NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

使用NGINX和NGINX Plus实现高性能缓存
NGINX | 2016/08/24

使用NGINX和NGINX Plus实现高性能缓存

我将介绍NGINX在内容缓存和性能方面的工作原理,并分享一些控制NGINX内容缓存方式的技巧。