cdn的概念
内容分发网络 CDN (Content Delivery Network)是解决网络连接速度的问题,可以提高访问速度。
1.业务背景
一般客户通过互联网访问网站服务,客户访问服务器的流程如下: Client -> Internet -> Server 。在这个过程中,有几个影响访问速度(用户打开网页速度)的因素:client和internet之间的连接,internet中间的连接,服务器和internet之间的连接,任何一个环节出问题,都会降低访问速度,影响客户体验。
首先,看一下如何优化客户跟服务器连接的速度:
- 访问速度受 服务器和客户之间的物理距离影响:如果客户在北京,那把服务器部署在北京最好;如果客户在上海,把服务器部署在上海最好。但是如果我们的客户分散在全国各地,我们想让所有客户访问速度一样快,就可能需要在全国各大城市都部署服务器,就可以解决带宽问题。
- 访问速度受宽带运营商影响,(电信,网通,铁通):可能我们的客户分布在不同的运营商,如果想让它们访问速度都快,就可能需要在3个运营商都部署服务器,或者在一台服务器接三个宽带,然后主机规划路由
这样带来的问题呢
- 成本比较高:硬件,人员维护
- 技术方面的问题:要保证所有服务器的数据一致,要做数据同步的任务,比较复杂
2.CDN可以解决的问题
CDN的模式,就有点像次日达的模式,次日达是在全国各地都建物流仓库,各个仓库把客户可能购买的商品准备好,等到用户下单,直接从就近仓库发货。CDN是提前把客户可能用到的数据放到离客户比较近的节点中,客户直接从距离自己最近的节点获取数据。解决可最后一个公里传输质量问题。CDN的质量参数:节点数量。CDS适合视频类网站,因为视频超大,可以提高视频播放速度
解决最后一公里传输质量
- 用户与服务器物理距离远,多次网络转发,延时高,且不稳定
- 先进的分布式系统架构,国内节点数最多的云CDN:全球1500+
弹性带宽,低成本:这是云的优点
- 资源弹性扩展,按实际使用量付费,接入即可实现跨运营商,跨地域的全网覆盖
- 先用后付,提供按流量或峰值带宽两种计费方式,满足不同业务需求
减少源站压力,节省源站带宽成本
- 没有CDN,网站服务器的带宽要足够大,因为所有客户都是从源站获取数据。在CDN中,提前把数据从源站放到各个边缘节点,由边缘节点提供客户访问服务,所以源站的配置不用太高。
- 对于网站突发流量,无需用户干预,自动做出响应和调整,有效减少源站压力
- CDN是公认的最具性价比的解决方案
3.阿里云CDN的概念
阿里云内容分发网络CDN(Content Delivery Network)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。阿里云CDN分担源站压力,避免网络拥塞,确保在不同区域,不同场景下加速网站内容的分发,提供资源访问速度。
阿里云CDN将源站资源缓存至阿里云遍布全球的加速(边缘)节点上,当终端用户请求访问和获取该资源时,无需回源,系统自动调用离终端服务最近的CDN节点上已缓存的资源。
可以把加速节点在全球的分布作为判断CDN加速质量的一个非常重要的标准,节点越多,加速效果更好。
CDN相关的产品
可以和CDN结合使用的阿里云产品有如下这些
对象存储OSS:可以在OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用
- OSS存的照片,音乐,视频比较大的非结构化的数据
- CDN的流量由CDN来承担
视频直播:可以在视频直播中应用CDN,实现媒资存储,切片转码,访问鉴权,内容分发加速一体化解决方案
视频点播:可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验
- 看电影,电视剧,听音乐
- 提前把视频缓存到边缘节点
阿里云云解析:可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验
- CDN要和域名结合起来,开通CDN后,会把域名定位到阿里云中,阿里云根据智能云解析,根据客户所在的位置,返回距离客户比较近的边缘节点的IP。
云服务器ECS:可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本
负载均衡SLB:可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力
阿里云外的资源:CDN不仅可以加速阿里云的资源,支持阿里云外的资源
CDN优势
- 稳定快速:分布式的架构,中间节点获取源站数据,再分发到边缘节点,客户直接访问边缘节点.1500+全球节点,120T带宽能力,覆盖六大洲,主流运行商支持
- 性价比高:不需要硬件成本,不需要维护成本;按量付费,透明价格,灵活切换计费方式,享受低成本高质量的内容分发
- 简单易用
- 高效智能
- 极速:毫秒级响应,优质高速网络搭配SSD存储更流畅
- 易扩展:内置功能丰富,自主控制台丰富API,便捷架构扩展
CDN的工作原理
假如自己搭建了一个源站服务器,该服务器的域名为www.a.com
把该服务器接入CDN网络,开始使用加速服务后,当一个终端用户(北京用户)发起HTTP请求时,处理流程如下:
- 用户在浏览器敲入www.a.com
- 请求发送到LDNS服务器,(所有域名访问都要找DNS服务器,DNS解析服务,把域名解析为IP)
- CNAME是别名记录,阿里云根据所要加速的域名,生成一个CNAME域名
- LDNS找这个网络授权的DNS服务器,这个网络授权的DNS服务器返回一个CNAME域名www.a.tbcdn.com,
- 阿里云的DNS调度系统通过这个CNAME定位到阿里云CDN服务器,阿里云CDN服务器,CDN根据用户所在位置不同,返回给客户一个最合适的边缘节点IP
- 用户通过这个IP去访问这个最合适的节点IP,如果边缘节点有用户需要的数据,直接返回
如果没有CDN加速,处理流程如下:看红色箭头
- 用户在浏览器敲入www.a.com
- 请求发送到LDNS服务器,(所有域名访问都要找DNS服务器,DNS解析服务,把域名解析为IP),
- LDNS找这个网络授权的DNS服务器,网站授权DNS返回源站IP
- 用户通过这个IP直接访问源站
CDN的衡量指标
可以根据以下几个主要性能指标,观察网站CDN前后网站的情况。
延时:指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。延时越低,性能越好。比如用户键入www.a.com到打开网页的时间。
下载速度:指用户从网络上或者网络服务器上下载数据时的传输速度。下载速度越快,性能越好。
打开速度:指用户打开网站的速度。打开速度越快,性能越好。延时是指数据包,而且会受自己电脑配置的影响。
丢包率:指用户在网络传输中所丢失数据包数量占所发送数据组的比率。
回源率:回源率分为回源请求数比例和回源流量比例两种
- 回源请求数比:指边缘节点对没有缓存,缓存过期和不可缓存的请求占所部请求的比例。越低性能越好
- 回源流量比:回源流量是指回源请求文件大小产生的流量和请求本身产生的流量。所以回源流量比=回源流量/(回源流量+用户请求访问的流量),比值越低,性能越好。
缓存命中率:指终端用户访问加速节点时,该节点已缓存了要被访问的数据的次数占全部访问次数的比例。缓存命中率越高,性能越好。
由于业务场景和业务类型不同,即使选择了相同配置的CDN服务,实际产生的加速效果也不相同。
CND中常见名词
CNAME记录
- CNAME记录 (Canonical Name)即别名记录,CNAME记录是DNS系统中的一种记录类型,用来把一个域名解析到另一个域名,再由另一个域名提供IP地址。CNAME记录类型跟CDN没什么关系,是CDN需要用到它。
- DNS系统中A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录
- 正常来说,DNS是把一个域名解析为IP,比如用户要访问www.a.com,DNS会告诉客户这个域名对应的IP,用户直接访问这个IP就好了。
- 如果配置了CNAME,DNS会通过CNAME把一个域名解析到另一个域名,再由另一个域名提供IP地址。就是如果客户想访问www.a.com,CNAME告诉客户你去访问www.b.com,这就是别名。然后由www.b.com提供对应的IP地址
- 在阿里云CND中,CNAME是把一个域名解析到阿里云中的域名。在阿里云中,CNAME记录需要用户自己配置,在用户把网站服务器接入到阿里云中时, 删掉NDS中原来的A记录,创建一个CANAM记录,也就是说需要把DNS服务器中的解析记录修改为阿里云提供的域名CNAME域名,把访问这个网站服务器的域名请求转发到阿里云CDN的域名。
CNAME域名
- 接入CDN,在阿里云控制台添加加速域名后,阿里云CDN将分配一个CNAME域名。我们创建CDN加速时,阿里云根据所要加速的域名,生成一个CNAME域名。然后呢,我们把这个CNAME域名,配到到DNS服务器中即可。
DNS
- Domain Name System 域名解析服务
- DNS的作用:把域名转换为网络可以识别的IP地址,也可以把IP地址转换为域名
- 在DNS系统中,会涉及到A记录,PTR记录,MX记录,CNAME记录等。
- 访问网站时,一般都要借助DNS来完整域名和IP的解析
边缘节点
- 在阿里云中,边缘节点,CDN节点,Cache节点,缓存节点,加速节点,阿里云节点,节点等都是指阿里云边缘节点,都是同一个意思在不同场景的不同叫法.
- 阿里云通过边缘节点提供访问速度
源站
- 实际提供业务的服务器。源站类型可以选择OSS域名,IP,源站或者函数计算域名
回源
- CDN节点未缓存请求资源或缓存资源已到期时,CDN节点回源站获取资源,返回给客户端的过程
开通CDN
1.开通CDN服务
- CDN服务是不分地域的
2.添加加速域名
- 如果需要使用CDN加速指定网站上的业务,则需要将该网站作为源站,为其创建加速域名
- CDN通过加速域名来将源站的资源缓存到CDN的加速节点,实现资源加速访问
- 加速域名一般为子域名或泛域名。比如有个域名a.com,那么beijing.a.com就是子域名,*.a.com就是泛域名
- 不支持中文域名加速
- 加速域名不允许重复添加
- 如果泛域名未被添加到任何CDN账号下,则其支持多个CDN账号添加不同的子域名
- 加速内容必须合法且符合CDN业务规范
- 添加加速域名,要求域名通过工信部备案的域名,目前CDN提供控制台和OpenAPI接口新增加速域名
3.配置CNAME
- 域名添加成功后,阿里云CDN会分配对应的CNAME地址。如果需要启用CDN加速服务,则需要去域名服务商那儿,将加速域名指向CNAME地址,访问加速域名的请求才能转发到CDN节点上,达到加速效果。
- 不同的运营商配置方式可能不同,不同的DNS服务商修改CNAME记录的方式略有不同,请参考相应DNS服务商进行配置
- CNAME配置完整后,可以通过ping 加速域名或者dig命令来验证CNAME记录是否生效。如果ping域名,返回CNAME域名就说明配置成功。
4.停止CDN服务
- 当不想使用CDN加速服务时,可以在CDN控制台上删除指定加速域名。删除加速域名后,不会产生任何费用
- 在域名管理页面,单击目标域名对应下图红框中的图标,选择删除
- 在DNS服务商,把CNAME记录删掉,再添加一个A记录,把域名解析到源站IP地址
CDN的配置
配置回源策略
阿里云CDN可设置多个IP或域名为源站,可设置各个源站优先级为主,次两档。用户回源时,100%先找主源站,如果主源站3次健康检测都失败,就会去找次源站。源站是做4层健康检查,每5秒检查一次。
设置缓存过期时间
- 该功能可以针对不同目录路径和文件名后缀的资源进行缓存服务器行为的设置,用户可自定义指定资源内容的缓存过期时间规则
- 支持用户自定义缓存策略优先级
- Cache的默认缓存策略
刷新缓存
源站内容更新后,需要在更新源站内容后,同时刷新CDN节点的缓存,这样才能保证源站内容与CDN的缓存内容保持一直
目前CDN控制管理后台的【刷新】页面提供两种刷新方式供客户使用:URL刷新和目录刷新
- URL刷新:强制将CDN CACHE节点上的某些文件设置为已过期,以达到重新回源更新的目的
- 目录刷新:强制将CDN CACHE节点上的某个目录的文件均设置为已过期,以达到重新回源更新的目的
查看实时监控数据
- 登录CDN控制台,进入域名管理页面,选择需要设置的域名,单击管理
- 在数据监控->资源监控或实时监控,选择用户想要查看的监控项和指标,点击查询
使用防盗链功能
- 防盗链功能基于HTTP协议支持的Referer机制,通过referer跟踪来源,对来源进行识别和判断
- 目前防盗链功能支持黑名单或白名单机制,访客对资源发起请求后,请求到达CDN节点,CDN节点会根据用户预设的防盗链黑名单或白名单,对访客的身份进行过滤
验证CDN服务
要验证CDN服务是否已经生效,主要有以下几种方法
- 通过ping或dig命令所添加的加速域名,如果成功,表示CND功能已经生效
- 通过dig命令可以查看相应的加速域名访问CDN节点的IP和延时丢包等基本信息
- 用于也可以获取对应加速域名的资源的response头查看是否有CDN加速对应的节点信息来判断CDN是否生效
其它功能
- 日志管理
- 性能优化
- 统计分析
- 图片鉴黄
CDN的适用场景
业务使用场景,分为静态内容加速,动态内容加速和安全加速。其中,阿里云CDN只针对于静态内容加速的使用;动态内容加速需要使用阿里云全站加速;安全加速需要使用阿里云安全加速。
- 需要对静态内容加速 用 阿里云CDN,
- 需要对动态内容加速,用阿里云全站加速;
- 需要对安全加速,用阿里云安全加速
阿里云CDN的业务场景
- 图片小文件:网站或应用APP的主要业务为图片和小文件下载,包括各类型图片,HTML,css,js小文件等。
- 大文件下载:网站或应用APP的主要业务为大文件下载,平均单个文件大小在20M以上,如游戏,各类客户端下载和APP下载商店等。
- 音视频点播:网站或应用APP的主要业务为视频点播或短视频类。支持MP4,FLV等主流视频格式。
- 全站加速:全站加速时阿里云一款独立产品,主要用于动态内容加速,也可以实现动静分离加速。
- 安全加速:安全加速适用于游戏,金融,政企安防,电商,医疗领域等易受到攻击又必须兼顾加速的业务场景
CDN产品
CDN用来提高用户访问的相应速度和成功率,解决因分布、带宽、服务器性能带来的访问延迟问题。
-
如何实现动静分离?
- 如何实现大文件的快速下载?
- 如何用于安全防护能力?
CDN加速包括:静态加速,直播加速,移动应用加速,全站加速,安全加速,大文件加速等。
1.静态加速
静态资源如各种类型图片,CSS,JS小文件等,建议结合对象存储OSS使用。
设置静态文件加速路径->设置静态文件类型->设置静态文件URL
站点或应用中大量静态资源的加速分发。建议将站点内容进行动静分离,静态内容使用阿里云CDN加速。动态内容可以使用全站加速。
2.直播加速
- 阿里云CDN直播加速产品可以支持客户不同的直播流输入方式,目前支持推流RTMP/HTTP-FLV,拉流支持RTMP/HTTP-FLV/HLSHDS
- 智能调度系统可以将用户请求定位到最优节点
- 直播中心用于处理对直播流的处理,包括转码率、转分辨率、转音视频编码格式、HTS切片等
- 遍布全球的CDN边缘节点用于实时、快速地想要终端用户地请求
3.移动应用加速
- 防劫持
- 多终端自适应
- 动静态加速
移动APP更新文件(apk文件)分发,移动APP内图片,页面,短视频,UGC等内容地优化加速分发
4.全站加速
全站加速主要是电商平台,应对在线支付,秒杀等突发流量问题。
5.安全加速
6.大文件下载加速
CDN的计费和使用限制
计费方式
CDN服务等级协议
CDN的使用限制
总结
目标-ACA
- 了解内容分发网络CDN的概念
- 理解阿里云内容分发网络CDN的优势
- 掌握内容分发网络CDN的工作原理
- 了解内容分发网络CDN的使用流程
目标-ACP
- 了解CDN的诞生背景和作用
- 掌握阿里云CDN功能特性和架构原理
- 掌握阿里云CDN的优势和典型应用
- 掌握CDN接入与配置管理操作
- 了解阿里云PCDN,scdn,全站加速产品基础知识
总结-ACA
- 内容分发网络CDN的概念
- 阿里云CDN的优势
- CDN的适用场景
- CDN的配置流程
总结-ACP
- CDN的概念
- CDN的工作原理
- 开通CDN
- CND的配置
- CDN的计费
- CDN的使用限制
思考题-ACP
- CND可以解决哪些问题?它的基本原理是什么? 答:CDN主要是解决最后一公里传输质量的问题
- 用简短的语言说明以下概念:DNS解析,智能DNS,CNAME,缓存,边缘节点,加速域名,回源
- DNS解析:将域名翻译成IP。返回离你最近的CDN服务器的IP,而不是源站IP
- 智能DNS:返回离你最近的CDN服务器的IP,而不是源站IP
- CNAME:别名记录,访问域名时,自动翻译成另一个域名
- 缓存
- 边缘节点:用户访问连接的服务器
- 加速域名:针对哪个域名提供加速功能
- 回源:边缘节点没有数据时,去源站获取数据
- 配置CDN加速,需要在DNS服务器上做什么配置? 需要配置CNAME,对应要加速的域名
- CDN的计费方式主要有哪些?基础计费和增值费
- CDN中使用的CNAME记录代表什么含义?CANME是DNS服务器中的别名记录,将一个域名解析为另外一个域名,由另一个域名提供IP
原文链接:https://blog.csdn.net/dreamstar613/article/details/117196589
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/17737