意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

如何应对突发的流量激增和服务器过载问题

来源:恒创科技 编辑:恒创科技编辑部
2022-09-08 21:55:00

原文作者:Frances Fedoriska of F5

原文链接:​​如何应对突发的流量激增和服务器过载问题​​

转载来源:NGINX 官方网站


如何应对突发的流量激增和服务器过载问题


在新冠疫情的冲击下,许多零售商的客户都改变了他们假日购物的渠道和方式。由于人们无法去实体店购物,线上购物迎来了前所未有的新高潮 ——​​2020 年美国的电子商务销售额飙升至 1,890 亿美元,比 2019 年增长了 33%​​。现在购物狂欢节还有不到六个月的时间,我们在此提供了几种利用 NGINX 帮助您为突发的流量高峰做好准备的方法。

第 1 步:知己知彼

在调整堆栈之前,最好先了解您需要在多大程度上优化您的网站性能,才能在购物狂欢季有最佳(而不是勉强合格)的表现。先从收集竞争对手网站的性能数据开始吧。页面加载时间可能是最重要的指标,因为如今许多用户都没有耐心,只要​​网页加载时间超过三秒,他们就会离开​​​。测量加载时间的工具有很多,并且大多都是免费的。您不妨参考一下​​Geekflare 最近测评的 11 款测试工具​​。

您可考虑测量以下页面的加载时间:

主页产品搜索页面产品详情页面点击“购买”按钮后出现的确认页面

测试几个竞争对手和您自己的网站的关键页面只需几个小时。(在测量下载时间之前,请务必使用​​Shift+Refresh​​清除浏览器缓存。)有测量结果的加持,您接下来需要做的是:

制定总体性能指标。对不同的网站来说,从头到尾的整个流程(访问、搜索及购买)共需要多长时间?确定优劣势。找出您的网站有优势、有竞争力或拖后腿的地方。注意功能差异。竞争对手如何通过额外的功能提升购物体验?您的网站提供了哪些功能来打造独特的用户体验?制定计划。如果您的网站在一个或多个方面远远落后于竞争对手,那么您需要努力达到他们的平均响应时间;如果您已拥有很强的竞争力,则努力成为第一名吧。第 2 步:使用 NGINX,就像那些全球最繁忙的网站一样

2021 年的早些时候,​​NGINX​​​在​​互联网 Web 服务器排名中荣登第一宝座​​​。我们很荣幸有这么多网站信任我们,使用我们的产品交付网站和应用,同时我们也非常欢迎您的加入。然而,NGINX 不仅仅是一个 Web 服务器,它还是一个一体化的软件​​反向代理​​​、​​负载均衡器​​​、​​高速缓存​​​和​​API 网关​​。

NGINX 最重要的优势之一是它可以大大优化进入您网站的流量。您可以将 NGINX 看作是在商店门前管理人流的看门人。它能够对购物者的操作(HTTP 请求)进行排队和授权,就像把人行道上混乱的人群变成商店内顺畅有序的结账队列。它能够将购物者引导至购物清单上商品的特定位置,确保流量均匀分布,且所有资源都得到均匀使用。

NGINX 主要使用两种开箱即用的技术来实现这一点:

​​通过使用 keepalive 连接进行 HTTP 卸载​​,目的是缓冲缓慢到达的 HTTP 请求,并等到它们准备就绪后再将其转发到后端服务器。相比远端客户端,从 NGINX(位于快速的本地网络)发起的事务的完成速度要快得多。具有多种算法的成熟的​​负载均衡​​,目的是优化流量分布,并尽可能高效地使用服务器资源。

除了优化流量外,NGINX 还提供了以下四种方式帮助您优化网站,并防止流量激增期间出现服务器过载问题。

如何应对突发的流量激增和服务器过载问题_nginx

阅读详情:

​​通过高速缓存缩短网页响应时间​​​​通过流量控制管理访客流量​​​​通过按需弹性扩展增加弹性​​​​通过内置安全防护保护客户数据​​通过高速缓存缩短网页响应时间

很多功能都会增加在线交易的成功几率,比如点击收藏、线上下单并线下取货,甚至客户支付选项等。NGINX 的​​内容缓存​​​功能与 Web 流量有着类似的效果。NGINX 会自动存储它发送给客户端的每个文件,并直接利用缓存来处理给定文件的后续请求。高速缓存不仅可以加快对用户的响应速度,而且还可以减少上游服务器上的负载,因为对于相同的请求,它们不必总是从头开始反复进行处理。​​内容缓存可以将内部流量减少 100 倍​​,从而减少服务应用所需硬件的处理能力(具体取决于应用)。

使用连接、速率和带宽控制管理访客流量

在最繁忙的时段,出于安全原因(避免过度拥挤)或为了保证重要客户获得优待(VIP 时间、受邀参加的促销活动等等),商店看门人可能需要限制进店购物的人数。Web 应用也需要采取类似的措施。您可以通过限制进入网站的流量来防止服务器过载,并确保客户端及时访问所需的资源。NGINX(在容器环境中为​​NGINX Ingress Controller​​)提供了一系列限制入向流量的方法,包括:

​​并发限制​​—— 限制转发到每个服务器的并发请求数,以匹配每个服务器中有限的工作线程或进程数​​请求速率限制​​—— 对每个来自客户端的请求按秒或按分加以限制,以防因支付网关或复杂搜索等服务而出现的服务器过载。​​带宽限制​​—— 控制客户端可以在每个连接中可以下载的数据量

如有必要,您可以区分不同类型的客户端。您商店的配送区可能不会延伸至地球的另一端,或者您希望优先考虑购物车中有商品的用户,您可以利用 cookie、地理位置数据及其他参数来控制 NGINX 应用流量限制的方式。

通过弹性扩展避免服务器过载

如果您没有部署适当的基础架构,那么流量激增很容易导致服务器过载。​​NGINX 的轻量级事件驱动型架构​​​可最大限度提高当前基础架构的应用交付性能。我们提供了针对​​NGINX Ingress Controller​​​以及 NGINX Plus 在​​裸机​​​和​​虚拟容器环境​​下的选型指南,针对您准备达到的性能和规模,选型指南可帮助您准确地了解所需的运营成本。

​​DevOps 团队​​还可以利用以下 NGINX 功能来有效应对流量高峰:

在云环境中部署 NGINX 和应用。NGINX 支持在 、​​亚马逊云科技(AWS)​​​、​​谷歌云平台​​​和​​Microsoft Azure​​​等主要云环境中使用。每个云服务提供商都支持自动扩展以调整应用实例的数量,从而响应变化的需求。如欲了解更多信息,请参阅​​亚马逊云科技​​​、​​谷歌云平台​​​和​​Azure​​上的自动扩展文档。在 Kubernetes 环境中部署容器。​​NGINX Ingress Controller​​​和​​NGINX Service Mesh​​​提供了多种功能,可​​增强 Kubernetes 应用的弹性​​。您可以根据用户需求水平扩展应用 pod,并且几乎不会增加实时用户的延迟。使用 NGINXPlus API​​动态扩展后端服务器​​并通过NGINXPlus对后端服务器进行负载均衡。通过内置的安全防护保护客户数据

对于任何网站,特别是对于处理信用卡信息的在线零售商来说,确保交易安全必不可少。网络攻击可能会让品牌声誉受损和吃官司,对此零售商 Target 深有体会。​​Target 通过增强可视化和安全性解决了 2014 年的数据泄露问题​​。为打造市场上最安全的购物体验之一,从而在竞争中脱颖而出,您可实施:

​​可视化策略​​,帮助您尽早发现漏洞在​​负载均衡器​​​和​​Ingress controllers​​上集中进行身份验证和授权管理,助您实现稳健、易于配置的单点登录 (SSO) 功能​​强大的轻量级 WAF​​​可防范​​OWASP 十大安全漏洞​​​和​​PCI DDS 漏洞等​​​​服务网格​​可确保所有通信均经过 mTLS 加密,从而有效阻止黑客窃取网络上的敏感数据。

OwenGarrett 和 FloydSmith 对本文亦有贡献。


更多资源

想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?

请前往 NGINX 开源社区:

官网:​​https://www.nginx.org.cn/​​微信公众号:​​https://mp.weixin.qq.com/s/XVE5yvDbmJtpV2alsIFwJg​​微信群:​​https://www.nginx.org.cn/static/pc/images/homePage/QR-code.png?v=1621313354​​B 站:​​https://space.bilibili.com/628384319​​
上一篇: 租用美国服务器:潜在的风险与应对策略。 下一篇: 从IslandsArchitecture看前端有多卷