CDN内容分发网络

CDN内容分发网络

1 定义

Content Delivery Network

建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络

替代传统以Web Server为中心的数据传输模式

比如在观看视频直播的时候

如果中心节点在上海,但是你在遥远的乌鲁木齐

那毫无疑问直播将会非常的卡顿

但是CDN就解决了这个问题

2 优势

CDN将源站资源缓存到阿里云全国各地的边缘服务器

供用户就近快速获取,提升用户体验,降低源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度

2.1 稳定快速

  • 先进的分布式系统框架 :1500+全球节点
  • 充足的带宽、存储资源 :120T带宽能力
  • 稳定高效的性能指标 :毫秒级响应,搭配SSD存储更流畅
  • 完善的监控体系 :覆盖六大洲,主流运营商支持

2.2 节约成本

  • 资源弹性扩展 :自主控制台丰富API,架构扩展便捷
  • 先付后用:按量付费,灵活切换计费方式

2.3 简单易用

  • 自助化配置域名的添加、删除、修改、查询

遇到带宽压力,加速等方面,大概率要选CDN


3 CDN与传统的差距

3.1 最后一公里传输质量

在这里插入图片描述

传统服务器距离用户远

需要多次网络转发,延时高不稳定

  • 阿里云CDN先进分布,是国内节点最多的云CDN

3.2 成本

  • 阿里云CDN按实际使用量付费,先用后付,可以按照流量或峰值带宽两种计费

3.3 源站压力

  • 阿里云CDN对于网站突发流量,会自动做出调整,减轻了源站压力

阿里云CDN是公认的最具性价比的解决方案

遇到减少带宽成本、源站压力、中心节点的压力,大概率选CDN
在这里插入图片描述

4 CDN衡量指标

通用指标指标说明衡量标准
延时数据包从客户端发送到服务器,再返回的来回时间越低性能越好
下载速度客户端从服务器下载数据的传输速度越快性能越好
打开速度用户打开网站的速度越快性能越好
丢包率用户在网络传输中丢失数据包数量占总发送的比率越低性能越好
回源率回源请求数比:边缘节点对没有缓存、缓存过期和不可缓存的请求占全部请求记录的比例 回源流量比=回源流量/(回源流量+用户请求访问的流量)比值越低性能越好
缓存命中率用户访问节点时,该节点已缓存要被访问的数据的次数占全部访问次数的比值越高性能越好

如果在北京研发投放的软件,那北京的用户打开就不需要用到CDN

同区域没有使用CDN的必要

如果一个文件不常访问的,也是没有采用CDN存储的必要

即**访问量高的项目比较有使用CDN的必要**

静态的内部使用的文件并没有使用CDN的必要,除非是全国性的公司


5 CDN工作原理

假设加速域名为www.example.com,接入CDN网络,开始使用加速服务后,当终端用户发起HTTP请求

  • 首先向本地DNS发起域名解析↓

  • 本地DNS检查缓存中是否有其的IP地址记录

    • 有,直接返回给终端用户←
    • 无,则向授权DNS查询↓
  • 授权DNS解析www.example.com时,返回域名CNAME www.example.com.dnsv1.com对应IP地址

  • 域名解析请求发送到阿里云DNS调度系统,分配最佳节点IP

  • 本地DNS获取DNS返回的解析IP地址

  • 用户获取解析IP地址

  • 再次发出相同请求时,将会直接将数据返回给用户
    在这里插入图片描述

6 基本概念

  • 加速域名

    • 需要使用CDN加速的域名
  • CNAME

    • 别名,用来把一个域名解析到另一个域名,再由另一个域名提供IP地址
  • DNS

    • 域名解析服务,将域名转换成网络可以识别的IP地址
  • HTTPDNS

    • 用在客户端的时候请求URL防止域名劫持的情况
  • 边缘节点

    • 与最终接入的用户之间具有较少中间环节的网络节点
    • 将访问量大的内容缓存到边缘节点的服务器上,提高访问的速度和质量
  • SSL/TLS

    • 架构在TCP之上的安全套接层
  • 源站

    • 实际业务的服务器
  • 回源

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

    • 源站决定了回源时,请求到哪个IP由回源HOST决定

源站为www.a.com,回源HOST为www.b.com,那么实际回源是请求到www.a.com解析到的IP,即对应的主机上的站点www.b.com

7 应用场景

  • 小文件
    • 网站或应用的主要业务为图片和小文件下载
    • 主要指标:连接时间首包时间内容下载时间
  • 大文件下载
    • 网站或应用的主要业务为大文件下载
    • 平均单个文件大小为20M以上,如游戏、客户端下载和APP下载商店
    • 主要指标:下载速度和下载总时间
  • 视音频点播
    • 网站或应用APP的主要业务为视频点播或短视频
    • 主要指标:首播时间和卡顿率
  • 全站加速
    • 阿里云的一款独立产品
    • 用于动态内容加速
  • 安全加速
    • 适用于游戏、金融、政企安防、电商、医疗领域等易受攻击又必须兼顾加速的业务

8 使用限制

8.1 加速域名备案

  • 接入阿里云CDN进行加速的域名需要根据加速区域决定是否要备案
  • 添加域名,选择的加速区域为全球或中国内地,都必须备案

8.2 内容审核

所有接入CDN的域名都要经过内容审核

目前不支持接入的域名

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

8.3 域名

每个阿里云账户下,最多支持加速50个域名

域名的总带宽日均峰值大于50MB,且业务无风险,可以申请增加

8.4 IP源站

每个加速域名的默认IP源站数量限制为10个IP地址

8.5 缓存刷新类操作

  • URL刷新:2000条/日/每账户
  • 目录刷新:100个/日/每账户

9 计费方式

计费方式描述使用场景
峰值带宽每日峰值带宽计费,每5分钟统计一个带宽数据,每日得到288个值,取其中的最大值流量平稳,带宽利用率大于30%
流量每日从CDN节点流出的实际流量计费流量波动大,带宽利用率小于30%
流量包一次性付费,有效期一年仅适用于按流量计费
增值服务计费额外对HTTPS请求数实时日志服务和图片鉴黄功能单独计费HTTPS功能或全站加速的域名
预付费-下行流量/HTTPS请求数资源包包年,一次性支付后立即生效,超出按量计费
月结95带宽峰值联系阿里云洽淡接入月消费金额大于10万,
CDN WAF根据WAF功能请求次数计费

10 配置服务

10.1 开通CDN服务

实名认证开通

10.2 添加加速域名

域名要通过工信部备案,CDN提供控制台和OpenAPI接口新增加速域名

10.3 变更域名解析

将其指向CDN系统生成的CNAME域名,完成域名加入接入

10.4 访客真实IP

在HTTP协议的X-Forwarded-For中

在Apache和Nginx的自定义LOG中直接获取

在CDN控制台中有一键开通记录访客真实IP功能

10.5 配置缓存过期时间

用户自定义缓存策略优先级

10.6 验证生效

  • ping 或dig所添加的加速域名
  • dig查看相应的加速域名访问CDN节点的IP和延时丢包信息
  • 获取对应加速域名的资源的response头查看是否具有CDN加速对应的节点

10.7 停用删除加速域名

  • 停用后,加速域名信息依然会保留
  • 删除后,将删除所有相关记录
    • 仅需要暂停使用,推荐选择停用
  • 推荐在停用删除前,到域名所在解析服务商处恢复域名记录,保证站点正常访问

10.8 刷新和预热

刷新可以强制节点回源并获取最新文件

预热可以在业务高峰预热热门资源,提高资源访问效率

分类原理
刷新通过提供目录下文件的方式,强制CDN节点回源最新文件 URL是强制将节点上的文件设置为已过期,目录刷新是强制将节点上的某目录的所有资源设置为已过期
预热后,源站将主动将对应的资源缓存到CDN节点,首次请求时,就能从缓存中直接获取到最新的资源,提高了缓存命中率

10.9 访问控制

设置黑白名单以及URL鉴权,实现对访客身份的识别和过滤

从而限制访问CDN资源的用户

功能说明
Refer防盗链配置访问Referer黑白名单实现识别和过滤
URL鉴权配置URL鉴权功能保护站点资源不被非法站点下载盗用,安全性高于Referer防盗链
IP黑白名单配置IP黑白名单实现识别和过滤
UA黑白名单配置UsageAgent黑白名单实现识别和过滤
10.9.1 Refer防盗链
  • 默认不启用,是可选配置
  • 黑白名单互斥,同一时间只能选择一种方式
  • 配置后,CDN会自动添加泛域名
  • 允许通过浏览器地址栏直接访问资源URL
  • Refer内容可以伪造
10.9.2 URL鉴权
  • CDN客户站点提供加密URL,URL中包含权限验证信息
  • 用户使用加密后的URL向加速节点发起请求
  • 加速节点对加密URL中的权限信息进行验证
10.9.3 IP黑白名单

黑名单内的IP均无法访问当前资源

黑名单的IP仍可访问CDN节点,但会被CDN节点拒绝返回403

CDN日志中会记录下这些黑名单中的IP请求记录

如果设置白名单,那则只有白名单内的IP可以访问,两者不能同时使用

10.10 缓存命中率

字节缓存命中率=CDN缓存命中响应的字节数/CDN所有请求响应的字节数

请求缓存命中率=CDN缓存命中的请求数/CDN所有的请求数

预热URL

  • 业务高峰时,CDN缓存命中率低
  • 加速域名流量较低时,CDN缓存命中率低

配置资源缓存规则

  • 静态资源未返回响应时,缓存失败,CDN缓存命中率低

过滤URL中可变参数

些黑名单中的IP请求记录

如果设置白名单,那则只有白名单内的IP可以访问,两者不能同时使用