如何应对突发的流量激增和服务器过载问题
原文作者:Frances Fedoriska of F5在新冠疫情的冲击下,许多零售商的客户都改变了他们假日购物的渠道和方式。由于人们无法去实体店购物,线上购物迎来了前所未有的新高潮 —— 2020 年美国的电子商务销售额飙升至 1,890 亿美元,比 2019 年增长了 33%。现在购物狂欢节还有不到六个月的时间,我们在此提供了几种利用 NGINX 帮助您为突发的流量高峰做好准备的方法。
原文链接:如何应对突发的流量激增和服务器过载问题
转载来源:NGINX官方网站
第 1 步:知己知彼
在调整堆栈之前,最好先了解您需要在多大程度上优化您的网站性能,才能在购物狂欢季有最佳(而不是勉强合格)的表现。先从收集竞争对手网站的性能数据开始吧。页面加载时间可能是最重要的指标,因为如今许多用户都没有耐心,只要网页加载时间超过三秒,他们就会离开。测量加载时间的工具有很多,并且大多都是免费的。您不妨参考一下 Geekflare 最近测评的 11 款测试工具。
您可考虑测量以下页面的加载时间:
- 主页
- 产品搜索页面
- 产品详情页面
- 点击“购买”按钮后出现的确认页面
- 制定总体性能指标。对不同的网站来说,从头到尾的整个流程(访问、搜索及购买)共需要多长时间?
- 确定优劣势。找出您的网站有优势、有竞争力或拖后腿的地方。
- 注意功能差异。竞争对手如何通过额外的功能提升购物体验?您的网站提供了哪些功能来打造独特的用户体验?
- 制定计划。如果您的网站在一个或多个方面远远落后于竞争对手,那么您需要努力达到他们的平均响应时间;如果您已拥有很强的竞争力,则努力成为第一名吧。
2021 年的早些时候,NGINX在互联网 Web 服务器排名中荣登第一宝座。我们很荣幸有这么多网站信任我们,使用我们的产品交付网站和应用,同时我们也非常欢迎您的加入。然而,NGINX 不仅仅是一个 Web 服务器,它还是一个一体化的软件反向代理、负载均衡器、高速缓存和 API 网关。
NGINX 最重要的优势之一是它可以大大优化进入您网站的流量。您可以将 NGINX 看作是在商店门前管理人流的看门人。它能够对购物者的操作(HTTP 请求)进行排队和授权,就像把人行道上混乱的人群变成商店内顺畅有序的结账队列。它能够将购物者引导至购物清单上商品的特定位置,确保流量均匀分布,且所有资源都得到均匀使用。
NGINX 主要使用两种开箱即用的技术来实现这一点:
- 通过使用 keepalive 连接进行 HTTP 卸载,目的是缓冲缓慢到达的 HTTP 请求,并等到它们准备就绪后再将其转发到后端服务器。相比远端客户端,从 NGINX(位于快速的本地网络)发起的事务的完成速度要快得多。
- 具有多种算法的成熟的负载均衡,目的是优化流量分布,并尽可能高效地使用服务器资源。
文章图片
阅读详情:
- 通过高速缓存缩短网页响应时间
- 通过流量控制管理访客流量
- 通过按需弹性扩展增加弹性
- 通过内置安全防护保护客户数据
有关高速缓存和示例配置的更多详情,请参阅我们的博文《高速缓存和微缓存站点内容》和《NGINX 和 NGINX Plus 高速缓存指南》。
使用连接、速率和带宽控制管理访客流量 在最繁忙的时段,出于安全原因(避免过度拥挤)或为了保证重要客户获得优待(VIP 时间、受邀参加的促销活动等等),商店看门人可能需要限制进店购物的人数。Web 应用也需要采取类似的措施。您可以通过限制进入网站的流量来防止服务器过载,并确保客户端及时访问所需的资源。NGINX(在容器环境中为 NGINX Ingress Controller)提供了一系列限制入向流量的方法,包括:
- 并发限制 —— 限制转发到每个服务器的并发请求数,以匹配每个服务器中有限的工作线程或进程数
- 请求速率限制 —— 对每个来自客户端的请求按秒或按分加以限制,以防因支付网关或复杂搜索等服务而出现的服务器过载(详情请参阅我们的博文[《 NGINX 和 NGINX Plus 速率限制》])。
- 带宽限制 —— 控制客户端可以在每个连接中可以下载的数据量
通过弹性扩展避免服务器过载 如果您没有部署适当的基础架构,那么流量激增很容易导致服务器过载。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对后端服务器进行负载均衡。
- 可视化策略,帮助您尽早发现漏洞
- 在负载均衡器和 Ingress controllers 上集中进行身份验证和授权管理,助您实现稳健、易于配置的单点登录 (SSO) 功能
- 强大的轻量级 WAF 可防范 OWASP 十大安全漏洞和 PCI DDS 漏洞等
- 服务网格可确保所有通信均经过 mTLS 加密,从而有效阻止黑客窃取网络上的敏感数据。
现在,有了我们的企业级解决方案的加持,您就放心迎接即将到来的 2021 年线上线下年终购物季吧。
所有商用产品均提供 30 天免费试用版。
- NGINX Plus 和 NGINX App Protect
- NGINX Ingress Controller 和 NGINX App Protect
- NGINX Controller
- NGINX Instance Manager
- F5 DNS 负载均衡器云服务和 F5 备用 DNS 云服务
- NGINX 开源版
- NGINX Service Mesh
- NGINX Unit
更多资源
想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?
【如何应对突发的流量激增和服务器过载问题】请前往 NGINX 开源社区:
- 官网:https://www.nginx.org.cn/
- 微信公众号:https://mp.weixin.qq.com/s/XV...
- 微信群:https://www.nginx.org.cn/stat...
- B 站:https://space.bilibili.com/62...
推荐阅读
- 如何与自己好好相处()
- 如何成为一名开发人员——第|如何成为一名开发人员——第 1 部分(编码技巧)
- 投稿|B站如何才能“站着把钱挣了”
- 基金|科创正当时,如何发挥基金的力量|第五届金汇奖年度盛典
- .Net|.Net vs .Net Core,我该如何选择(看这一篇文章就够了)
- 【Postman】断言、自定义变量
- [极致用户体验]|[极致用户体验] 如何实现响应式canvas(保持canvas比例?教你让canvas自适应屏幕宽度!)
- 培养良好的亲子关系,如何做正确的有效沟通()
- Shiro实战
- 投稿|“经营之圣”稻盛和夫去世,终年90岁:应对经济萧条第一条—全员营销