download:React18+Next.js13+TS,B端+C端残缺业务+技术双闭环
摘要
CDN的全称是(Content Delivery Network),即内容散发网络。其目标是通过在现有的Internet中减少一层新的CACHE(缓存)层,将网站的内容公布到最靠近用户的网络”边缘“的节点,运用户可能就近取得所需的内容,提高用户拜访网站的响应速度。从技术上全面解决因为网络带宽小、用户访问量大、网点分布不均等原因,提高用户拜访网站的响应速度。
简略的说,CDN的工作原理就是将您源站的资源缓存到位于寰球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,防止网络拥塞、缓解源站压力,保障用户拜访资源的速度和体验。
一、CDN减速原理
的解析记录,DNS调度零碎将为其调配最佳节点IP地址。
Local DNS获取DNS调度零碎返回的最佳节点IP地址。
Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。
用户向最佳节点IP地址发动对该资源的拜访请求。
如果该最佳节点已缓存该资源,则会将请求的资源间接返回给用户(步骤8),此时请求结束。
如果该最佳节点未缓存该资源或者缓存的资源已经生效,则节点将会向源站发动对该资源的请求。获取源站资源后拆散用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户(步骤8),此时请求结束。
二、CDN的利用场景和作用
CDN的利用场景如下表所示。可使用CDN减速的站点次要包含媒体站点、网页站点和下载站点,下表列出了每个站点实用的场景。
实用于网站或利用中小文件的减速散发,例如各种门户网站、电子商务类网站、新闻资讯类网站或利用、娱乐游戏类网站等。
大文件
实用于各类大文件的下载和散发减速,例如游戏安装包、利用更新、手机ROM升级、利用程序包下载等,平均单个文件大小在20 MB以上。
频音点播
实用于各类视音频网站,例如影视类视频网站、在线教育类视频网站、新闻类视频网站、短视频社交类网站以及音频类相干网站和利用,反对MP4、FLV等支流视频格式。
图片小文件
图片小文件实用于网站或利用中小文件的减速散发,例如各种门户网站、电子商务类网站、新闻资讯类网站、娱乐游戏类网站等。您需要将源站内容进行动动态分离,动态内容使用CDN减速,例如图片、CSS、JS小文件等;
CDN减速图片小文件业务可能帮您解决以下问题:
终端用户拜访慢:网站小文件内容多、打开速度太慢。
跨区域拜访品质差:终端用户分布在不同区域,不同区域的访问速度和品质高低不一。
高并发压力大:经营推广期间,源站服务器压力大,服务器容易崩溃,造成服务不可用。
图片格式分辨率处理简单:无奈根据适合的终端情况进行图片压缩和优化。
大文件下载
大文件下载实用于各类大文件的下载和散发减速,例如游戏安装包、利用更新、手机ROM升级、利用程序包下载等,平均单个文件大小在20 MB以上。
CDN减速大文件下载业务可能帮您解决以下问题:
终端用户无奈下载或者下载太慢。
网络环境不稳固时,下载容易中断,从新下载会耗费额定的资源。
网站内容不安全,容易被劫持或者盗链,对业务造成额定的损失。
高并发下载或者下载突增场景下对源站性能申请非常高,且源站的带宽成本也较高。
视音频点播
视音频点播实用于各类视音频网站,例如影视类视频网站、在线教育类视频网站、新闻类视频网站、短视频社交类网站以及音频类相干网站和利用,您可能使用CDN产品实现对音视频内容的文件散发和拜访减速。
CDN减速视音频点播业务可能帮您解决以下问题:
终端用户拜访视频时打不开视频或容易卡顿,观看不流畅。
视频资源容易被劫持或盗用,版权得不到无效保护。
高并发拜访或者拜访突增场景下对源站性能申请非常高,且源站的带宽成本也较高。
使用CDN可能帮您实现动态资源的减速和散发,提高资源访问速度:
丰富的资源节点:为用户提供就近接入的同运营商CDN节点,解决长距离接入和跨运营商拜访带来的提早高和速度慢的问题。
资源可弹性扩大:基于寰球2800+节点,资源可弹性扩大,实现业务高可用。
精准的调度零碎:实时获取CDN节点的健康状况,并根据用户所在位置和运营商来调配最佳接入节点,以便获得最佳接入成果。
智能的传输链路:通过协定优化、连接优化等措施来升高总体时延、提高传输速度,特地是提高弱网环境下的传输速度。
高效的缓存策略:能够带来更高的缓存命中率,命中就近节点上的近程资源,提供高效地访问速度。
升高您的IT成本:可将您的业务算力、带宽、连接数转移到CDN边缘节点,升高您的IT成本。
弱小的带宽输入能力:全网带宽输入能力达150 Tbps。
提供行业通用标准API:提高易用性和适用性。
三、CDN的零碎架构
CDN的产品架构图,由调度零碎、链路品质零碎、缓存零碎和撑持零碎这四大零碎组成。
CDN的产品架构图说明
调度零碎:反对策略核心、DNS、HTTPDNS和302调度模式。当终端用户发动拜访请求时,用户的拜访请求会先进行域名DNS解析,而后通过CDN的调度零碎处理用户的解析请求。
链路品质零碎:链路品质探测系统会实时监测缓存零碎中的所有节点和链路的实时负载以及健康状况,并将后果反馈给调度零碎,调度零碎根据用户请求中携带的IP地址解析用户的运营商和区域归属,而后综合链路品质信息为用户调配一个最佳接入节点。
缓存零碎:用户通过收到的最佳接入节点拜访对应的缓存节点,如果节点已经缓存了用户请求的资源,会间接将资源返回给用户;如果L1(边缘节点)和L2(汇聚节点)节点都没有缓存用户请求的资源,此时会返回源站去获取资源并缓存到缓存零碎,供后续用户拜访,避免重复回源。分级缓存的部署架构可提高内容散发效率、升高回源带宽以及晋升用户体验。
撑持服务零碎撑持服务零碎包含天眼、数据智能和配置管理系统,别离具备了资源监测、数据分析和配置管理能力。
资源监测:天眼可能对缓存零碎上用户业务运行的状态进行监测。例如对CDN减速域名的QPS、带宽、HTTP状态码等常见指标的监控。
数据分析:用户可能分析CDN减速域名的TOP URL、PV、UV等数据。
配置管理:通过配置管理系统,用户可能配置缓存文件类型、缓存时去参数缓存等缓存规定,以晋升缓存零碎的运作效率。
3.2 CDN网络的基础概念
源站,指您运行业务的网站服务器,是减速散发数据的起源。源站可用来处理和响应用户请求,当边缘节点没有缓存用户请求的内容时,节点会返回源站获取资源数据并返回给用户。CDN的源站可能是对象存储OSS、函数计算、自有源站(IP、源站域名)。
边缘节点是CDN用于缓存源站资源,以便疾速响应不同地区用户请求的网络节点。在CDN的帮助文档中,边缘节点、CDN节点、Cache节点、缓存节点、减速节点、节点等都指CDN的边缘节点。
减速域名,是您接入CDN用于减速、终端用户实际拜访的域名。例如,您将域名aliyundoc.com接入DN,aliyundoc.com即为减速域名。
CDN通过减速域名,将源站资源缓存到CDN减速节点,实现资源拜访减速。在DN的帮助文档中,减速域名通常被简写为域名。域名(Domain Name)又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理地位)。
CNAME(Canonical Name)记录,指域名解析中的别名记录,用来把一个域名解析到另一个域名(CNAME域名),再由CNAME域名来解析到需要拜访的服务器IP地址。
CNAME域名,是CDN生成的,当您在CDN控制台增加减速域名后,零碎会为减速域名调配一个.kunlun*.com形式的CNAME域名。说明 CDN产品通过分布广泛的CDN边缘节点来为最终用户提供减速服务,不同区域或者不同运营商的用户拜访到的CDN节点IP地址是不同的,因此减速域名就无奈通过DNS的A记录解析的形式唯一解析到某个IP地址,这个时候就引入了CNAME域名。增加减速域名后,您需要在您的DNS解析服务商处,增加一条CNAME记录,将减速域名唯一解析到CNAME域名,记录失效后域名解析就正式转向CDN服务,该域名所有的请求都将转向CDN的边缘节点,达到减速成果。CNAME域名将会解析到具体哪个CDN节点IP地址,将由CDN的调度零碎来综合区域、运营商、节点资源水位等多个条件来决定。
动态内容是指用户多次请求某一资源,响应返回的数据都是雷同的内容。例如图片、视频、网站中的文件(HTML、CSS、JS)、软件安装包、APK文件、压缩包文件等。CDN通过减速域名将源站的动态资源缓存到CDN遍布寰球的减速节点上,供用户就近拜访,实现资源拜访减速。
动静内容是指用户多次请求某一资源,响应返回的数据可能是不同的内容。例如网站中的文件(ASP、JSP、PHP、PERL、CGI)、API接口、数据库交互请求等。
DNS(Domain Name System)即域名解析服务,次要功能是将域名解析为网络可能识别的IP地址,即域名解析。人们习惯记忆域名,但机器间互相只识别IP地址。域名解析需要由顺便的DNS服务器来实现,整个过程主动进行。例如,您上网时输出域名aliyundoc.com会主动转换成10.10.10.10(举例说明,具体IP以实际为准)。
SSL(Secure Sockets Layer)即安全套接字协定,SSL协定位于TCP/IP协定与各种应用层协定之间,可能无效辅助Internet上的应用软件晋升通信时的资料完好性及安全性。IETF将SSL规范化后名称被改为TLS(Transport Layer Security),即传输层安全协定,因此通常将两者并称为SSL/TLS。
当用户通过阅读器发送请求时,如果CDN节点未缓存请求的资源或缓存资源已到期,此时会回源站获取资源并返回给用户,该过程被称为回源。
回源HOST,即CDN节点回源时实际请求的域名。当源站服务器上提供多个域名服务时,您可根据业务需要指定CDN节点回源时在拜访的具体域名。例如,您期望CDN回源时实际请求的地址为aliyundoc.com,与减速域名www.aliyundoc.com不同,那么您需要配置回源HOST为aliyundoc.com。
回源协定,指CDN节点回源时使用的协定,有可能与客户端拜访资源时使用的协定雷同,也有可能不雷同。例如,当客户端使用HTTPS形式请求未缓存在CDN节点上的资源时,可能配置CDN节点使用HTTPS协定回源站获取资源,也可能配置使用HTTP协定回源(源站不反对HTTPS协定的情况下)。
SNI(Server Name Indication)是对SSL/TLS协定的扩大,可用来解决一个HTTPS服务器(同一个IP地址)具备多个域名,然而无奈必定客户端到底请求的是哪一个域名的服务的问题。
当您的源站IP绑定了多个域名,且CDN回源协定为HTTPS时,可通过配置回源SNI,来指明客户端从哪个域名获取资源,服务器会根据配置的SNI信息返回正确的证书给客户端。
Range回源,指CDN节点在回源的HTTP请求外面携带了Range信息,源站在收到CDN节点的回源请求时,根据HTTP请求头中的Range信息返回指定范畴的内容数据给CDN节点,例如只返回某个文件的0-100Byte范畴内的数据。
在视频点播、软件下载等大文件内容散发场景下,Range回源可无效提高文件散发效率,可能提高缓存命中率,缩小回源流量消耗和源站压力,并且晋升资源响应速度。说明 Range是HTTP请求头之一,可用来指定需获取的内容的范畴。
回源302追随,指CDN节点代替客户端间接处理源站响应的302状态码的内容,可缩小处理流程,放慢获取资源的速度。
Referer防盗链,是基于HTTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规定,实现对访客的身份识别和过滤,防止网站资源被非法盗用。配置Referer黑白名单后,CDN会根据名单识别请求身份,容许或拒绝拜访请求。说明 Referer是HTTP请求头的一部分,携带了HTTP请求的起源地址信息(协定+域名+查问参数),可用于识别请求的起源。
带宽封顶,指通过设置带宽下限,来管制带宽用量,缩小因突发流量导致的损失。当指定减速域名在统计周期(1分钟)内产生的平均带宽超出预设下限,CDN将停止为该域名提供减速服务,且该域名会主动下线,并被解析到有效地址offline.*.com,无奈被持续拜访。
缓存过期工夫,指资源在CDN节点上缓存的时长。资源过期后会主动从CDN节点删除,用户向CDN节点发动的拜访请求会被判定为未命中缓存,CDN节点会主动回源站获取最新资源返回给用户,并缓存到CDN节点。
跨域资源共享(CORS),是一种基于HTTP头的访问控制机制,容许Web服务器申明哪些源站(指定的域名、协定、端口)有权限通过阅读器拜访指定资源。
边缘脚本(EdgeScript,简称ES)是一个可供您疾速实现CDN/DCDN定制配置的工具箱,当CDN/DCDN管制台上的标准配置无奈满足您的业务需要时,可能使用边缘脚本通过简略地编程实现定制化业务需要。
边缘程序(EdgeRoutine,简称ER)是一个运行在寰球边缘节点上的JavaScript代码运行环境,反对ES6语法和标准的Web Service Worker API。您可能将自行开发的JavaScript代码公布至寰球边缘程序运行,在寰球边缘节点上就近地处理客户端的请求。
HSTS(HTTP Strict Transport Security,HTTP 严格传输安全),是一种网站用来申明他们只能使用安全连接(HTTPS)拜访的方法。网站可通过申明HSTS,来强制客户端(如阅读器)只能使用HTTPS与服务器连接,拒绝所有的HTTP连接并阻止用户接受不安全的SSL证书,升高第一次拜访请求被拦挡的危险。具体配置方法,请参见 配置HSTS。
例如,未开启HSTS的情况下,当您源站使用HTTPS请求时,在阅读器输出HTTP链接,用户请求拜访到服务器上的时候,服务器会将该HTTP请求301或302重定向到HTTPS,在用户请求以HTTP协定拜访服务器的过程中,HTTP请求可能被恶意拦挡或者篡改,存在安全隐患。开启了HSTS当前,客户端只能使用HTTPS协定拜访服务器,这样就可能杜绝这类隐患。
QUIC(Quick UDP Internet Connections)是一个基于UDP的通用网络协议,能够保障网络安全性(与TLS/SSL相当),同时具备更低的连接和传输延时,无效防止网络堵塞,在丢包和网络提早重大的情况下仍可提供可用的服务。
QUIC在应用程序层面就能实现不同的拥塞控制算法,不需要操作系统和内核反对,相比于传统的TCP协定,具备更好的革新灵敏性,非常适合在TCP协定优化遇到瓶颈的业务。
HTTP状态码(英文:HTTP Status Code),是用来示意HTTP响应状态的数字代码,可用来判断和分析服务器的运行状态。当客户端(例如阅读器)向服务器收回请求时,服务器会返回一个蕴含HTTP状态码的信息头来响应客户端的请求,通过状态码告诉客户端以后请求响应的状态。
HTTP常见状态码分类:
1xx:消息
2xx:胜利
3xx:重定向
4xx:客户端谬误
5xx:服务器谬误
四、CDN与全站减速的区别
对比项
CDN
全站减速
典型利用场景
手机App更新、游戏包更新、视频点播(长视频、短视频)、图文网站。
在线商城、在线领取、聊天互动、在线教育、寰球对战游戏、金融理财。
覆盖范畴
仅中国边疆
寰球
寰球(不蕴含中国边疆)
仅中国边疆
寰球
寰球(不蕴含中国边疆)
减速形式
以动态内容减速为主,实用于高带宽大流量场景,动静资源间接回源。
通过寰球2800+边缘节点,基于缓存策略存储您的业务内容。
基于源站负载平衡、回源权重治理、回源流量卸载等技术管制回源流量,保护源站同时升高源站成本。
将服务器上的图片、视频等动态资源缓存在CDN边缘节点,供用户从最近的节点获取动态资源。
反对纯动静减速和动动态混合减速。
纯动静减速 针对POST请求等不能在边缘缓存的业务,基于智能选路技术,从泛滥回源线路中择优抉择一条线路进行传输。
动动态混合减速 智能识别动静和动态资源,动态资源缓存在边缘节点,供用户就近拜访;动静资源基于智能选路技术,从泛滥回源线路中择优抉择一条线路进行传输。
协定反对
应用层:反对HTTP、HTTPS、QUIC协定。
网络层:反对IPv4、IPv6协定。
应用层:反对HTTP、HTTPS、WebSocket协定。
传输层:反对TCP、UDP协定。
网络层:反对IPv4、IPv6协定。
调度模式
反对DNS、HTTPDNS、302调度。
反对DNS、HTTPDNS、302调度。
边缘计算
通过EdgeScript边缘脚本,实现可编程CDN的业务逻辑。
图片处理。
反对在边缘节点使用EdgeRoutine构建边缘程序,例如A/B Test、预热等。
通过EdgeScript边缘脚本,实现可编程CDN的业务逻辑。
图片处理。
五、CDN的性能衡量指标
您可能通过CDN的性能衡量指标,观察使用CDN前后网站减速的情况,评估CDN减速的成果,帮助您更好地做出业务调整和决策。衡量指标次要包含:您可能根据以下通用性能指标(包含但不限于),观察使用CDN前后您的网站情况。
通常使用CDN后的网络延时、丢包率、回源率都会升高,缓存命中率则会提高。然而因为业务场景和业务类型不同,即使您抉择了雷同配置的CDN服务,实际产生的减速成果也不雷同,因此本文仅提供了定性的指标以供观测。
表格中提到的回源率、缓存命中率是指使用CDN后的衡量指标,如果您没有使用CDN,回源请求数为100%,缓存命中率为0。
数据上传路径
数据下载路径
指标
说明
DNS工夫
指从阅读器终端发动的拜访请求开始,到阅读器终端获得最终拜访主机IP地址所消耗的工夫。
TCP工夫
指客户端与目标服务器建立TCP连接所消耗的工夫。
SSL工夫
指客户端和Web服务器建立安全套接层(SSL)连接的消耗工夫。
发送工夫
指SSL握手实现开始发送请求到请求发送实现所消耗的工夫。
建立连接工夫
建立连接工夫简称为建连工夫,如果CDN节点使用HTTP协定减速客户业务,建连工夫蕴含“DNS工夫+TCP工夫”;如果CDN节点使用HTTPS协定减速客户业务,建连工夫蕴含“DNS工夫+TCP工夫+SSL工夫”。建立连接的工夫长短,可能反映CDN服务的节点资源覆盖的丰富程度以及调度能力。
响应工夫
指阅读器收回HTTP请求后,Web服务器进行后盾处理以及响应的工夫。
下载用时
指您收到Web服务器返回的第一个数据包,到实现下载的总工夫。
首包工夫
指从客户端开始发送请求到收到服务器端返回的第一个HTTP协定数据包之间所需要的工夫,首包工夫可能反映出CDN服务节点的整体性能。
在上传路径中,首包工夫次要蕴含了DNS解析工夫、TCP用时、SSL用时、发送工夫和响应工夫。
在下载路径中,首包工夫次要蕴含了DNS解析工夫、TCP用时、SSL用时、发送工夫和响应工夫。
说明 刚购买的域名,通常解析工夫较长,和CDN的缓存工夫无关。
整体性能
指实现整个文件的上传或下载所需要的总时长。
丢包率
指在网络传输中丢失数据包的数量占发送数据包总数的比率。
回源率
回源率分为回源请求数比例及回源流量比例两种:
回源请求数比:指CDN节点(包含边缘节点和汇聚节点)对于没有缓存、缓存过期(可缓存)和不可缓存的请求占全副请求的比例。回源请求数比=CDN节点回源请求数÷用户拜访CDN节点的总请求数,通常越低则性能越好(如果CDN回源做了分片,然而用户拜访CDN没有分片,那么会出现CDN节点回源请求数远大于用户拜访CDN的请求数的情况)。
回源流量比:回源流量指的是CDN节点回源拉取资源的过程中源站响应给CDN节点的所有流量。回源流量比=源站响应给CDN节点的总字节数÷CDN节点响应给用户的总字节数,比值越低,性能越好。
缓存命中率
CDN缓存命中率包含字节命中率和请求命中率,CDN缓存命中率通用指字节命中率,缓存命中率越高,性能越好。
字节命中率=(CDN节点响应用户的总字节数-源站响应CDN节点的总字节数)÷CDN节点响应用户的总字节数。 说明 字节缓存命中率越低,回源流量越大,源站的流出流量越大,源站的带宽资源以及其余的负载越大,因此回源流量代表了源站服务器接收到的负载压力,在业务使用中次要关心字节缓存命中率。
请求命中率=(用户拜访CDN节点的总请求数-CDN节点回源请求数)÷用户拜访CDN节点的总请求数。
发表回复