1 CDN 读取数据过程
用户访问您的源,先去查找CDN的1级节点,再查找CDN2级节点,2级节点没有,再查找源,源中的数据同步到2级节点,2级节点同步到1级节点,再从1级节点返回用户要访问的数据。
2 CDN缓存什么内容
(1)缓存html、图片、css、xml等静态资源,不缓存含有?的动态地址、jsp、php,js文件也不缓存【除非特殊设置】
(2) 缓存原站返回HTTP状态为20*或304,不缓存其他状态(例如404,500,503)
3 CDN 刷新缓存
(1) URL 刷新 原理:强制回源拉取更新的文件,并更新CDN Cache节点上的指定文件
(2) 目录刷新 原理:强制回源拉取更新的目录,并更新CDN Cache节点上的指定文件目录,适用于多内容较多的的场景。
(3) URL 预热 原理:将源站的内容主动预热到L2 Cache节点上,用户首次访问可直接命中缓存,缓解源站压力。
缓存刷新一般5-10 分钟之内生效
注意事项: 输入的 URL 必须带有 http://或者 https://
(4)缓存刷新、缓存预热的区别和使用场景是什么?
缓存刷新:强制将分发节点上缓存的资源标记为过期,当用户再次对该资源发起请求时,节点会回源拉取资源,并缓存一份更新后的资源在分发节点
缓存预热:主动触发将源站资源推送到边缘节点,用户访问资源时,可以直接命中缓存,缓解突增回源流量给源站造成的压力
4 CDN 缓存的配置
举例:为加速域名 example.aliyun.com 设置三则缓存配置规则
缓存策略1:文件名后缀为jpg、png的所有资源 过期时间为1月,权重设置为90
缓存策略2:目录为/www/dir/aaa 过期时间为1小时,权重设置为70
缓存策略3:完整路径为/www/dir/aaa/example.php 过期时间为0s,权重设置为80
则这三个缓存策略的生效顺序是:策略1—>策略3—>策略2
注:
权重可设置1-99数字越大,优先级越高,优先生效;
不推荐设置相同的权重,权重相同的两条缓存策略优先级随机
5 为了 CDN 使用的最优,建议您将动静态页面进行域名分离,静态页面的域名使用 CDN 的加速
6 源站 cachecontrol,expires,lastmodify,etag都没设置,CDN 也没设置缓存规则,是不会被缓存的
7 源站设置了 no-cache 、private、 max-age = 0 都遵循源站,CDN 是不会进行缓存的
本文主要来自阿里云帮助文档https://help.aliyun.com/knowledge_list/40185.html