如何应对突发的流量激增和服务器过载问题
原文作者:Frances Fedoriska of F5
原文链接:如何应对突发的流量激增和服务器过载问题
转载来源:NGINX官方网站
在新冠疫情的冲击下,许多零售商的客户都改变了他们假日购物的渠道和方式。由于人们无法去实体店购物,线上购物迎来了前所未有的新高潮——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 加密,从而有效阻止黑客窃取网络上的敏感数据。
现在您已准备就绪
现在,有了我们的企业级解决方案的加持,您就放心迎接即将到来的 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
Owen Garrett 和 Floyd Smith 对本文亦有贡献。
更多资源
想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?
请前往 NGINX 开源社区:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源交流丨任务or实例 详解大数据DAG调度系统Taier任务调度
课件获取:关注公众号 “数栈研习社”,后台私信 “Taier” 获得直播课件 视频回放:点击这里 ChunJun 开源项目地址:github 丨 gitee 喜欢我们的项目给我们点个__ STAR!STAR!!STAR!!!(重要的事情说三遍)__ 技术交流钉钉 qun:30537511 前言 在分享之前,先为大家介绍一下任务和实例的关系。任务指的是我们在任务开发界面上去创建的任务,比如Spark任务、SparkSQL任务、数据同步任务等,这些任务在开发过程中是静态的脚本,当被提交到计算节点去执行时,被执行的过程我们把它抽象成实例。举一个简单的例子来说明:比如我们写完一个Java的类然后把它打包成Jar包,其实这个Jar包就是一个静态类,当我们执行Jar包时,这个过程我们会把它抽象成一个实例,这就是任务与实例的关系。 Taier实例生成 1、Taier实例类型 首先我们来看一下Taier实例的类型,在Taier中实例主要有3种类型: 周期实例:T+1生成,完整依赖 补数据实例:立即生成,局部依赖 临时运行实例:立即生成,无依赖 ● 周期实例 周期实例是指在前一天生成的当天实例(T+1)...
- 下一篇
Tapdata 杨哲轩:如何在零售行业实施主数据治理?
导语:在上一篇文章中,作者谈到了数据孤岛形成的原因,简单介绍了主数据管理的概念和主数据管理为何能发挥作用。而主数据管理和数据治理一直以来饱受诟病的,便是落地难。选择一个称手的主数据开发平台,也是项目成功的关键。本篇就将结合具体案例,谈谈主数据管理在一个企业中如何落地,并帮助企业更好地把数据当作生产要素来支撑业务发展。 今天想和大家聊聊如何选择主数据管理方案。在 上一篇文章里 ,我们谈到了数据孤岛形成的原因,简单地介绍了主数据管理的概念和主数据管理为何能发挥作用。 当然,理念的东西毕竟是抽象的,从实用角度而言可能是无用的。这一篇文章将会从一个具体案例出发,来谈一谈 主数据管理在一个企业中如何落地,并帮助企业更好地把数据当作生产要素来支撑业务发展。 数据孤岛的形成是有其必然性的。企业的历史也是业务系统信息化/数字化的历史。当年任正非力排众议,邀请 IBM 为华为内部做流程化改造。一举奠定了现在仍在发挥重要作用的 IPD 流程,这也是华为引以为傲的竞争力。企业的成长,和孩子的成长是一样的。原本合身的上衣和裤子,也会发展过程中,慢慢变得不合适,不再适用当前的发展状态。 但也有不太一样的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境