您现在的位置是:首页 >学无止境 >CDN内容分发网络网站首页学无止境
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可以访问,两者不能同时使用