首页 > 技术文章 > 阿里云系列(七) CDN

mayongjie 2021-09-26 10:00 原文

@commandersu 2021-07-14 13:29 字数 5535 阅读 133

阿里云系列(七) CDN

阿里云项目实战工程师


Mr.su执教笔记(QQ:491537692)
--私人课件,不出版,不公开,禁止传播

想做好运维工作,人先要学会勤快;
居安思危,勤记而补拙,方可不断提高;
别人的资料用的再爽也是别人的;
自己总结的东西是你自身特有的一种思想与理念的展现;
精髓不是看出来的,精髓是记出来的;
请同学们在学习的过程中养成好的学习习惯;
勤于实践,抛弃教案,勤于动手,整理文档

了解CDN

阿里云内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。阿里云CDN分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。阿里云CDN将源站资源缓存至阿里云遍布全球的加速节点上,当终端用户请求访问和获取该资源时,无需回源,系统自动调用离终端用户最近的CDN节点上已缓存的资源。

基本概念

加速域名

  • 加速域名即您需要使用CDN加速的域名。域名是一组服务器的地址,可以是网站、电子邮件、FTP等。在阿里云CDN帮助文档中,加速域名通常指域名。

CNAME记录

  • CNAME(Canonical Name)即别名,用来把一个域名解析到另一个域名,再由另一个域名提供IP地址

CNAME域名

  • 接入CDN,在阿里云控制台添加加速域名后,阿里云CDN将分配一个CNAME域名 该CNAME域名的形式为 *.*kunlun*.com。
  • 需要在DNS解析服务商添加一条CNAME记录,将自己的加速域名指向*.*kunlun*.com的域名。记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。

DNS

  • DNS(Domain Name System),即域名解析服务。DNS的作用:把域名转换成为网络可以识别的IP地址

SSL/TLS

  • SSL(Secure Sockets Layer,安全通讯协议),是一个架构于TCP之上的安全套接层。它可以有效协助Internet应用软件提升通讯时的资料完整性以及安全性。标准化之后的SSL名称改为TLS(Transport Layer Security,传输层安全协议),因此很多相关的文档将二者并称(SSL/TLS)。

边缘节点

  • 边缘节点、CDN节点、Cache节点、缓存节点、加速节点、阿里云节点、节点等都指阿里云边缘节点。 边缘节点是相对于网络的复杂结构而提出的一个概念,指与最终接入的用户之间具有较少中间环节的网络节点,对最终接入用户有相对于源站而言更好的响应能力和连接速度。其作用是将访问量较大的内容缓存到边缘节点的服务器上,以此来提高网终端用户访问网站内容的速度和质量。

源站

  • 实际业务的服务器。源站类型可以选择OSS域名、IP、源站或函数计算域名。

回源

  • CDN节点未缓存请求资源或缓存资源已到期时,回源站获取资源,返回给客户端。

回源HOST

  • 源站决定了回源时,请求到哪个IP。回源HOST决定回源请求访问到该IP上的哪个站点。

协议回源

  • 指回源时使用的协议和客户端访问资源时的协议保持一致,即如果客户端使用HTTPS方式请求资源,当CDN节点上未缓存该资源时,节点会使用相同的HTTPS方式回源获取资源。同理,如果客户端使用HTTP协议的请求,CDN节点回源时也使用HTTP协议。

过滤参数

  • 借助过滤参数开关,可以根据实际业务需要,决定在缓存时是否过滤用户请求URL中?之后的参数。

  • 如果开启过滤参数,则CDN节点会截取没有参数的URL向源站请求,且CDN节点仅保留一份副本。

  • 如果关闭过滤参数,则每个不同的URL会缓存不同的副本在CDN的节点上

若资源URL中不同参数代表相同的内容,建议开启过滤参数,有效提升缓存命中率。

##工作原理

假设加速域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下图所示。

image_1eb94l7jnqdn1ip64em1b25bnr9.png-210.7kB

1.当终端用户(北京)向www.a.com下的某资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
2.LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
3.当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
4.域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
5.LDNS获取DNS返回的解析IP地址。
6.用户获取解析IP地址。
7.用户向获取的IP地址发起对该资源的访问请求。
(1) 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
(2) 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

CDN的衡量指标

  • 通用指标

  • 延时:指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。延时越低,性能越好

  • 下载速度:指用户从网络上或者网络服务器上下载的数据时的传输速度。下载速度越快,性能越好。

  • 打开速度:指用户打开网站的速度。打开速度越快,性能越好。

  • 丢包率:指用户在网络传输中所丢失数据包数量占所发送数据组的比率。

  • 回源率:回源率分为回源请求数比例及回源流量比例两种。
    1.回源请求数比:指边缘节点对于没有缓存、缓存过期(可缓存)和不可缓存的请求占全部请求记录的比例。越低则性能越好。
    2.回源流量比:回源流量是回源请求文件大小产生的流量和请求本身产生的流量。所以回源流量比=回源流量/(回源流量+用户请求访问的流量),比值越低,性能越好。

  • 缓存命中率:指终端用户访问加速节点时,该节点已缓存了要被访问的数据的次数占全部访问次数的比例。缓存命中率越高,性能越好。

  • 加速小文件的主要指标

小文件,主要指html、js、jpg、css等网页素材。这类加速对延迟要求较高,因为通常而言,页面加载时间的加长对用户流失会造成巨大影响

  • 建立连接时间:指DNS解析完成,然后找到对应IP地址后建立TCP连接的过程。建立连接的时间长短,基本可以反映CDN服务的节点资源以及调度能力。

  • 首包时间:指从客户端开始发送请求到收到服务器端发来的第一个包之间所需要的时间。这反映了CDN服务节点程序的整体性能。

    1. 在上传路径中,首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间和响应时间。
      image_1eb95snmq2dh1f3687c1o9svq4m.png-16.1kB

    2. 在下载路径中,首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间、响应时间和下载用时。
      image_1eb95vibshvh1tlv16i91itdgpm13.png-13.4kB

刚购买的域名,通常解析时间会较长,这和CDN的缓存时间无关。

  • 加速大文件下载的主要指标

  • 大文件下载,一般指各类单个文件大小大于20M的下载。因此对这类场景,最核心的指标就是下载速度和下载总时间。

  • 加速视音频点播的主要指标

视音频点播的场景,主要涵盖flv、mp4、wmv、mkv等视音频文件。在这类场景中的主要衡量指标包括首播时间和卡顿率:

  1. 首播时间:首播时间是从打开到看到视频画面的时间。往往会会受域名解析、连接、第一包时间的影响。
  2. 卡顿率:卡顿指视音频播放、资源加载等场景下出现画面滞帧。因此卡顿率主要指把所有用户播放视频的卡顿时间上报,每100个用户里面播放出现卡顿的比例。卡顿率越低,性能越好。

应用场景

图片小文件

业务主要涉及网站或者应用的静态小文件分发,例如各种类型的图像文件、html文件、flash动画、css、javascript文件等,

  • 典型应用场景

image_1ebtasmcaacgoko1u5udpgobs9.png-52.2kB

大文件下载

大文件下载适用于各类文件的下载、分发,平均单个文件大小在20M以上。建议将CDN产品与OSS产品结合使用,可提升回源速度,节约近2/3回源带宽成本

  • 典型应用场景

image_1ebtav4p74mb1bttdj150714vom.png-113.6kB

视音频点播

视音频点播主要适用于各类视音频站点,如影视类视频网站、在线教育类视频网站、新闻类视频站点、短视频社交类网站以及音频类相关站点和应用。

  • 典型应用场景

image_1ebtb28e01pom1ftan8d1fig1j713.png-114.9kB

安全加速

安全加速适用于游戏、金融、政企安防、电商、医疗领域等易受攻击又必须兼顾加速的业务场景。用于提升网站的访问效率、安全性和稳定性。

  • 典型应用

image_1ebtb4vsi1fmt1ttva81ro47be1g.png-390.8kB

全站加速

全站加速默认纯动态加速,即所有动静态请求都通过最优路由回源获取资源,可通过配置指定静态文件类型或路径,实现智能区分动静态资源。静态资源缓存在边缘节点上,动态资源使用动态加速,达到最快的加速效果。

  • 典型应用

image_1ebtb9it4ur718ckjfp1grhf3f1t.png-65.4kB

使用限制

加速域名备案

接入阿里云CDN进行加速的域名需要根据加速区域决定是否要完成ICP备案。

内容审核

所有接入CDN的域名都要经过内容审核。CDN目前不支持接入的域名包括但不限于:

  • 无法正常访问或内容不含有任何实质信息
  • 游戏私服类
  • 传奇类游戏和纸牌类游戏
  • 盗版软件等无版权下载网站
  • P2P类金融网站
  • 彩票类网站
  • 违规医院和药品类网站
  • 涉黄、涉毒、涉赌等

域名数量限制

数量限制数量
域名 每个阿里云账户下,最多支持加速50个域名。 域名的总带宽日均峰值大于50MB,且业务无风险,则可提交工单申请增加域名个数。
IP源站 每个加速域名的默认IP源站数量限制为10个IP地址。
缓存刷新类操作 URL刷新:2000条/日/每账户。 目录刷新:100个/日/每账户

域名回收规则

条件处理方式如果后续想启用需要
超过90天没有任何访问流量(包含处于正常运行状态) 自动停用该域名,但保存该加速域名的相关记录。 启用加速域名。
处于停用状态超过120天(包含审核未通过状态) 自动删除该域名的相关记录 重新添加域名

计费方式

计费方式说明
按带宽峰值 按带宽峰值计费是以当日各个区域节点加速服务分别产生的带宽最高值为结算标准,单位:Mbps。
按流量 按各大区流量阶梯价格计费,当月分别超额累进,以自然月为一个累计周期。
增值服务计费 开启了HTTPS、QUIC、实时日志推送、图片鉴黄等增值服务,将会产生额外的增值服务费用。
预付费-下行流量资源包 预付费包年模式,一次性支付,立即生效,超出部分,按量计费。
预付费-HTTPS请求数资源包 预付费包年模式,一次性支付,立即生效,超出部分,按量计费。
月结95带宽峰值 月消费金额大于10万,可以使用CDN提供的月度95带宽峰值计费方式.
CDN WAF 开启了CDN WAF功能,将会根据WAF功能的请求次数计费。(网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)

实例

如果没有开同,那么先点击开同CDN选择按流量计费,勾选同意,点击立即开通

创建一台带公网的ecs,(可以使用EIP)

image_1ebtfkcdn1e1v10m71jhiqbl1jbd2a.png-181.1kB

返回CDN在添加域名解析
image_1ebtftitq1gu01q771eca1dau6ut2n.png-129kB
image_1ebtg51r01u7ed5f1gdd1mq1tt334.png-163.1kB
image_1ebtgh06m1dld562acu6sqsv4o.png-183.6kB
image_1ebtgbe5616k2i3op40gnfvm63u.png-207.2kB
image_1ebtgdj721mng2jt1qvi146ud2d4b.png-9.7kB

创建一个oss去绑定CDN

image_1ebtgqur91o3s1c9pg5d13s6oau5i.png-202.6kB
image_1ebtgphsnr3018k1h38742i2j55.png-159.2kB
image_1ebtgs6ig1vvaldk161e3qo1kdd5v.png-10.2kB

点击下一步,如果成功了会出现一下的页面、
image_1ebtgugei992mj633p12ms7346c.png-70.3kB

域名管理

数据监控

资源监控

image_1ebthum5p18rs100d1nu162vt5u76.png-140.5kB
image_1ebthv6bk6sb1nj9158v1ik11e727j.png-128.3kB
image_1ebti6ikv8ghodkf5mes3t7t80.png-115.5kB
image_1ebti7i7c1q2r7clr71lho1ek88d.png-123.7kB

说明

监控项监控指标
流量带宽 带宽、流量。
回源统计 回源带宽、回源流量
访问次数 请求次数、QPS。
HTTPCODE 5xx、4xx、3xx、2xx
HTTPCODE(回源) 5xx、4xx、3xx、2xx

实时监控

image_1ebti8kui1ofq1kmf1csaodo1h738q.png-123.7kB
image_1ebtiaa92772eiq1dku1evg1mea97.png-84kB

说明

监控项监控指标
基础数据 带宽、流量、请求次数、QPS。
回源流量 回源流量、回源带宽。
质量监控 请求命中率、字节命中率、5xx状态码、4xx状态码、3xx状态码、2xx状态码。

统计分析

image_1ebtieg1ceg71o61e4ajt8n7l9k.png-116.2kB
image_1ebtifdnc1pdt1f7ja0c1c943sa1.png-57.2kB

说明

项目监控指标可选时间
PV/UV PV、UV、用户区域分布、运营商占比。 昨天、7天内、30天、自定义(90天内)。
Top客户端IP 按流量、按请求次数 昨天、7天内、30天、自定义(90天内)。
地区和运营商 排名、区域、总流量、总流量占比、访问次数、访问占比、响应时间。 昨天、7天内、30天、自定义(90天内)
热门Referer 流量、流量占比、访问次数、访问占比 昨天、自定义查看单日数据(90天内)
热门URL 流量、流量占比、访问次数、访问占比 昨天、自定义查看单日数据(90天内)。 查询的数据分别按流量、访问次数独立地记录域名每分钟的前100个URL数据,再根据查询的时间段对流量或访问次数的数据进行累加并各自返回。由于只统计每分钟的前100个URL,可能存在数据截断问题,并且按流量、访问次数分别统计,因此热门URL的数据并非完全精确(基于全量访问日志查询精确数据将非常耗时,影响查询体验),仅作为运营数据参考。如果您需要完全精确的URL排行数据,请使用日志下载功能,根据全量访问日志分析汇总。
热门 URLs (回源) 流量、流量占比、访问次数、访问占比 昨天、自定义查看单日数据(90天内)。
域名排行 各个加速域名的访问排名、流量、流量占比、带宽峰值、峰值时刻、访问次数。 昨天、7天内、30天、自定义(90天内)。

用量统计

image_1ebtin7gf194ueh4hpg1hku1pf6ae.png-115.3kB
image_1ebtj4gatq38rages7170k1nr5ar.png-70.6kB
image_1ebtj5e8pa1l1hiaumq1ol6bseb8.png-102.8kB
image_1ebtkq2mr1mbm1gnf17ni1t0a2jkbl.png-37.9kB
image_1ebtkrkm819fnffjfgj1rpkluoc2.png-116.6kB
image_1ebtkss011cg1m71j3qvss1utmcf.png-125.9kB
image_1ebtkvt681pra1iq813o71nas1cqfcs.png-109.6kB
image_1ebtl0bm52jo11c61jl1q811b52d9.png-97.2kB

刷新预热

image_1ebtl336b1412vd31ddh16kt1levdm.png-121.4kB

参数说明
操作类型 刷新 可以在源站资源更新后,刷新URL,系统自动清除CDN节点上的垃圾数据,下次访问URL时,直接回源获取最新数据,并缓存到CDN节点。 预热 可以在业务高峰前预热热门资源,也可以预热流量较低的加速域名,来提高缓存命中率
刷新类型 目录 当操作类型选择刷新时,需要选择该参数。 URL 当操作类型选择刷新或预热时,需要选择该参数。
URL 目录刷新 -- 输入的URL,需以http://或https://开始,以/结束。 同一个ID每天最多提交100个刷新请求,一次可全部提交。 URL刷新--- 输入的URL必须带有http://或https://。 同一个ID每天最多提交2000个刷新请求,每次最多只能提交1000条。 URL预热 --- 输入的URL必须带有http://或https://。 同一个ID每天最多预热500个URL,每次最多只能提交100条。

安全防护

waf防护
image_1ebtmhol5584bt61oorip36c5e3.png-37.1kB

CDN加速ECS源站

image_1ebtmm9eji55ocl1g029tkv1beg.png-138.5kB
image_1ebtmmoak14731mmf39skvr1ertet.png-28.4kB
image_1ebtmnd7q10mnp7a60iec126ufa.png-53.2kB

复制一个cnname
image_1ebtor77s9976br17oi14pcs5aii.png-119kB
image_1ebtotrmr206s8gfc2nr51b2iiv.png-127.7kB
image_1ebtov4gsoh1dta10gb1sg91o0iks.png-17.3kB
ping 别名,如果出现原来的就说明cdn加速做好了。(我这里由于没有备案所以ping的是域名解析。)
现在已经做好了加速,我们可以看到我们的

推荐阅读