开发者社区> 优惠码发放> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【CDN 最佳实践】CDN缓存策略解读和配置策略

简介: CDN 作为内容分发网络主要是将资源缓存在 CDN 节点上,然后后续访问即可直接通过 CDN 节点将资源返回给客户端,而不再需要回到源站服务器以加快请求速度。那么 CDN 到底对于哪些请求加速呢?其缓存规则和缓存时间是怎么样的呢?怎么样的缓存规则更加合理呢?本文就对 CDN 的缓存规则解读。
+关注继续查看

CDN 作为内容分发网络主要是将资源缓存在 CDN 节点上,然后后续访问即可直接通过 CDN 节点将资源返回给客户端,而不再需要回到源站服务器以加快请求速度。那么 CDN 到底对于哪些请求加速呢?其缓存规则和缓存时间是怎么样的呢?怎么样的缓存规则更加合理呢?本文就对 CDN 的缓存规则解读。

CDN 的缓存适用范围

CDN 对于常见的 HTTP 请求均是支持的,具体对不同请求方式的支持情况请参考表一。但是有一点需要注意的是虽然对这些类型的 HTTP 请求均是支持的,但是并不是对所有请求方式都会进行缓存的。 CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。因此我们建议添加 CDN 的站点源站最好能够实现动静分离。将动态请求和静态请求的内容独立成两个站点,而 CDN 仅仅加速静态站点中的资源。


                                                                        表一. CDN 对 HTTP 请求支持情况

请求方式 描述 是否支持
GET 从指定的资源请求数据 支持
POST 向指定的资源提交要被处理的数据 支持
HEAD 与 GET 相同,但只返回 HTTP 报头,不返回文档主体 支持
PUT 上传指定的 URI 支持
DELETE 删除指定资源 支持
OPTIONS 返回服务器支持的 HTTP 方法 支持
CONNECT 把请求连接转换到透明的 TCP/IP 通道 不支持



注意

  1. CDN 处理 HEAD 请求时会将 HEAD 请求转换成 GET 请求回源,因此源站日志中记录的是 GET 请求。
  2. CDN 仅支持 POST 和 PUT 方式发送带有请求体(BODY)的 HTTP 请求。

CDN缓存配置

CDN 的缓存配置截图如图 1 所示。缓存配置包括目录和后缀名两种形式,并且可以针对不同的缓存配置设置不同的权重以决定其优先级。其中后缀名即是针对于特定后缀名设置的缓存规则,而目录则是对该目录及其子目录下的所有文件均生效的。当对同一文件同时设置了后缀名和目录的缓存的话会先依据优先级权值先进行选择,在优先级权值相同的情况下会后缀名策略优先。
                                    image
                                                                        图 1. CDN 缓存配置示意图

CDN 缓存规则

总体而言,CDN 所有的缓存规则均可以按照图 2 中所表述的内容进行判断。下面我们对图 2 中的详细内容信息解读。
                                    image
                                                                        图 2. CDN 缓存规则示意图

  1. CDN 处理一个资源是否缓存首先是需要看源站针对于该资源配置的缓存设置。因为源站的不缓存策略是用户自身控制的,因此是有最高的优先级的,当源站配置了缓存规则则转 2 。而如果没有进行任何配置的话则转 3 ,而对于浏览器缓存情况转 7 。
  2. 当源站配置了以下的规则时, CDN 会认为该资源源站不允许 CDN 缓存,并且这种情况下浏览器也是不会做缓存的,因此会每次请求该资源时都回源站,无法进行缓存加速,如果没有则转 4 :
          1)有s-maxage=0,no-cache,no-store,private其中一种

      2)如果没有s-maxage或者s-maxage=0,并且有max-age=0.
      3)带Pragma: no-cache

  1. 在源站没有配置缓存规则需判断 CDN 控制台是否配置缓存规则,如果配置了缓存规则转 4 ,如果没有配置缓存规则转 5 。
  2. 需判断 CDN 控制台是否有配置缓存规则,如果配置了缓存规则的话那么
    CDN 上的缓存策略将覆盖源站的缓存策略,而控制台缓存配置的优先级为:

      1)权重越高的优先级越好;
      2)同等优先级后缀名优先级高于目录优先级;
      3)相同权重且相同优先级则随机匹配(建议避免第三种场景),如果没有配置缓存规则则转 6 。

  1. 需根据源站的缓存规则进行缓存,常见的源站缓存规则有 Cache-Control和 Expires 头,根据 HTTP 协议 Cache-Control 的优先级高于 Expires 头,并且 s-maxage 设置高于 max-age 设置。
  2. 需遵循 CDN 默认缓存规则,默认缓存规则包括:
          1)对于 response 头没有包括 Etag 或者 Last-Modified 头的文件默认是不缓存的(一般认为此类文件为动态文件);

      2)没有 Last-Modified 头的文件默认但是有 Etag 头的缓存 10 秒;
      3)对于有 Last-Modified 头的会按照(当前时间 - Last-Modified 时间) * 0.1,并且将其限制在 [10,3600] 区间内。

  1. 对于源站设置了不缓存的规则时浏览器是不缓存的;如果 CDN 修改了 Cache-Control 或者 Expires 头时,浏览器会按照该修改头缓存;如果没有修改即会按照源站的策略缓存。

CDN 缓存情况查看

常见通过 HTTP 的响应头查看具体 CDN 的缓存情况,如图 3 即是常见的通过 CDN 访问的响应头,可以根据 X-Cache 查看当前该资源是否有在 CDN的 L1 节点缓存,而查看 L2 节点的缓存情况则需要根据 Via 头中的第一部分查看,如果是 M 即是 MISS,没有命中的状态;而出现 H 即是命中缓存。X-Swift-SaveTime 表示该资源缓存到 CDN 节点上的 GMT 时间(相比于北京时间晚8小时);而 X-Swift-CacheTime 表示该资源在 CDN 节点上缓存多长时间会过期。
                        image
                                                                        图 3. CDN 缓存情况示意图

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云高级技术专家空见: CDN的数据化之路
EB级别日志、100%业务增长、千亿级别监控,应对海量数据,阿里云CDN必须进行实时、精准的处理,面对如此严苛的要求,阿里云CDN数据化是如何应对的呢?
3541 0
阿里云大幅降低CDN价格网宿蓝汛跟不跟?
本文讲的是阿里云大幅降低CDN价格网宿蓝汛跟不跟?【IT168评论】5月21日,阿里云计算宣布旗下“极速CDN”(内容分发网络)服务降价,称“将以国内最低的价格服务客户”。该轮降价最高降幅达到21%,调整后价格将相当于传统CDN厂商一半的价格。
2361 0
阿里云CDN6.0发布 重新定义CDN内涵
本文讲的是阿里云CDN6.0发布 重新定义CDN内涵【IT168 云计算】近日,阿里云PR一改往日规模会议的模式,落脚创业大街,在3W咖啡办起了CDN专项技术媒体分享会。从邀请函中明显看出,本场媒体沙龙的主题剑指传统CDN,“传统CDN会更好?”的疑问在本次技术分享中被揭晓。
1850 0
【技术干货】听阿里云CDN安防技术专家金九讲SystemTap使用技巧
SystemTap是一个Linux非常有用的调试(跟踪/探测)工具,常用于Linu内核或者应用程序的信息采集,本篇文章介绍其原理、安装、入门、脚本语言及技巧,由阿里云CDN安防专家金九撰写。
8705 0
【技术干货】听阿里云CDN安防技术专家金九讲tengine+lua开发
系统介绍tengine的安装、运行和开发,全文包含大量代码示例,由阿里云CDN安防技术专家金九撰写。
4493 0
CDN降价之后又一大招 阿里云PCDN正式开放申请
本文主要讲述PCDN的五大技术优势和产品特性,现在PCDN产品已经在官网开放申请,欢迎大家垂询。
8178 0
CDN---共享单车算啥,阿里云发布共享网络黑科技PCDN,降低视频行业75%的成本
近日,阿里云发布了名为PCDN的新一代内容分发网络,在全球主流云计算厂商中率先推出基于CDN+P2P技术的内容分发类云产品,引发了整个CDN行业的讨论。
2876 0
跟阿里云技术专家阙寒一起深度了解视频直播CDN技术
网络直播平台现下已经十分火热,很多常见的直播平台都采用了阿里云直播CDN来搭建自身业务。今天,我们邀请阿里云CDN团队技术专家阙寒,来介绍下视频的一些基础知识和视频直播的架构。
9062 0
+关注
优惠码发放
阿里云优惠码阿里云推荐券bieryun.com
569
文章
4
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载