原文作者:Frances Fedoriska of F5
原文链接:如何应答突发的流量激增和服务器过载问题
转载起源:NGINX 官方网站
NGINX 惟一中文官网社区,尽在 nginx.org.cn
在新冠疫情的冲击下,许多零售商的客户都扭转了他们假日购物的渠道和形式。因为人们无奈去实体店购物,线上购物迎来了前所未有的新高潮——2020 年美国的电子商务销售额飙升至 1,890 亿美元,比 2019 年增长了 33%。当初购物狂欢节还有不到六个月的工夫,[LK1] 咱们在此提供了几种利用 NGINX 帮忙您为突发的流量顶峰做好筹备的办法。
第 1 步:知己知彼
在调整堆栈之前,最好先理解您须要在多大程度上优化您的网站性能,能力在购物狂欢季有最佳(而不是勉强合格)的体现。先从收集竞争对手网站的性能数据开始吧。页面加载工夫可能是最重要的指标,因为现在许多用户都没有急躁,只有网页加载工夫超过三秒,他们就会来到。测量加载工夫的工具有很多,并且大多都是收费的。您无妨参考一下 Geekflare 最近测评的 11 款测试工具。
您可思考测量以下页面的加载工夫:
- 主页
- 产品搜寻页面
- 产品详情页面
- 点击“购买”按钮后呈现的确认页面
测试几个竞争对手和您本人的网站的要害页面只需几个小时。(在测量下载工夫之前,请务必应用 Shift+Refresh 革除浏览器缓存。)有测量后果的加持,您接下来须要做的是:
- 制订总体性能指标 。对不同的网站来说,从头到尾的整个流程(拜访、搜寻及购买)共须要多长时间?
- 确定优劣势 。找出您的网站有劣势、有竞争力或拖后腿的中央。
- 留神性能差别 。竞争对手如何通过额定的性能晋升购物体验?您的网站提供了哪些性能来打造独特的用户体验?
- 制订打算 。如果您的网站在一个或多个方面远远落后于竞争对手,那么您须要致力达到他们的均匀响应工夫;如果您已领有很强的竞争力,则致力成为第一名吧。
第 2 步:应用 NGINX,就像那些寰球最忙碌的网站一样
2021 年的早些时候,NGINX 在互联网 Web 服务器排名中荣登第一宝座。咱们很荣幸有这么多网站信赖咱们,应用咱们的产品交付网站和利用,同时咱们也十分欢迎您的退出。然而,NGINX 不仅仅是一个 Web 服务器,它还是一个一体化的软件反向代理、负载均衡器、高速缓存和 API 网关。
NGINX 最重要的劣势之一是它能够大大优化进入您网站的流量。您能够将 NGINX 看作是在商店门前治理人流的看门人。它可能对购物者的操作(HTTP 申请)进行排队和受权,就像把人行道上凌乱的人群变成商店内顺畅有序的结账队列。它可能将购物者疏导至购物清单上商品的特定地位,确保流量均匀分布,且所有资源都失去平均应用。
NGINX 次要应用两种开箱即用的技术来实现这一点:
- 通过应用 keepalive 连贯进行 HTTP 卸载,目标是缓冲迟缓达到的 HTTP 申请,并等到它们准备就绪后再将其转发到后端服务器。相比远端客户端,从 NGINX(位于疾速的本地网络)发动的事务的实现速度要快得多。
- 具备多种算法的成熟的负载平衡,目标是优化流量散布,并尽可能高效地应用服务器资源。
除了优化流量外,NGINX 还提供了以下四种形式帮忙您优化网站,并避免流量激增期间呈现服务器过载问题。
浏览详情:
- 通过高速缓存缩短网页响应工夫
- 通过流量管制治理访客流量
- 通过按需弹性扩大减少弹性
- 通过内置平安防护爱护客户数据
通过高速缓存缩短网页响应工夫
很多性能都会减少在线交易的胜利几率,比方点击珍藏、线高低单并线下取货,甚至客户领取选项等。NGINX 的内容缓存性能与 Web 流量有着相似的成果。NGINX 会主动存储它发送给客户端的每个文件,并间接利用缓存来解决给定文件的后续申请。高速缓存不仅能够放慢对用户的响应速度,而且还能够缩小上游服务器上的负载,因为对于雷同的申请,它们不用总是从头开始重复进行解决。内容缓存能够将外部流量缩小 100 倍,从而缩小服务利用所需硬件的解决能力(具体取决于利用)。
无关高速缓存和示例配置的更多详情,请参阅咱们的博文《高速缓存和微缓存站点内容》和《NGINX 和 NGINX Plus 高速缓存指南》。
应用连贯、速率和带宽管制治理访客流量
在最忙碌的时段,出于平安起因(防止适度拥挤)或为了保障重要客户取得虐待(VIP 工夫、受邀加入的促销流动等等),商店看门人可能须要限度进店购物的人数。Web 利用也须要采取相似的措施。您能够通过限度进入网站的流量来避免服务器过载,并确保客户端及时拜访所需的资源。NGINX(在容器环境中为 NGINX Ingress Controller)提供了一系列限度入向流量的办法,包含:
- 并发限度—— 限度转发到每个服务器的并发申请数,以匹配每个服务器中无限的工作线程或过程数
- 申请速率限度—— 对每个来自客户端的申请按秒或按分加以限度,以防因领取网关或简单搜寻等服务而呈现的服务器过载(详情请参阅咱们的博文《NGINX 和 NGINX Plus 速率限度》)。
- 带宽限度—— 管制客户端能够在每个连贯中能够下载的数据量
如有必要,您能够辨别不同类型的客户端。您商店的配送区可能不会延长至地球的另一端,或者您心愿优先思考购物车中有商品的用户,您能够利用 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,并且简直不会减少实时用户的提早。
- 应用 NGINX Plus API 动静扩大后端服务器并通过 NGINX Plus 对后端服务器进行负载平衡。
通过内置的平安防护爱护客户数据
对于任何网站,特地是对于解决信用卡信息的在线零售商来说,确保交易平安必不可少。网络攻击可能会让品牌名誉受损和吃官司,对此零售商 Target 深有体会。Target 通过加强可视化和安全性解决了 2014 年的数据泄露问题。为打造市场上最平安的购物体验之一,从而在竞争中怀才不遇,您可施行:
- 可视化策略,帮忙您尽早发现破绽
- 在负载均衡器和 Ingress controllers 上集中进行身份验证和受权治理,助您实现持重、易于配置的单点登录 (SSO) 性能
- 弱小的轻量级 WAF 可防备 OWASP 十大安全漏洞和 PCI DDS 破绽等
- 服务网格可确保所有通信均通过 mTLS 加密,从而无效阻止黑客窃取网络上的敏感数据。
NGINX 惟一中文官网社区,尽在 nginx.org.cn
更多 NGINX 相干的技术干货、互动问答、系列课程、流动资源:
开源社区官网:https://www.nginx.org.cn/
微信公众号:https://mp.weixin.qq.com/s/XVE5