秒懂边缘云 | CDN基础入门:CDN缓存配置及优化

作者:辰舒

使用CDN加速静态资源时,CDN会将源站上的资源缓存到距离客户端最近的CDN节点上。当您访问该静态资源时,可直接从CDN的缓存节点上获取,有效避免通过较长的链路回源,提高资源访问效率。在本章节中,我们共同学习如何通过合理配置CDN缓存功能来提升业务缓存的利用率,实现终端用户访问体验的提升。

准备工作

  1. 已经添加完成的CDN域名
  2. 阿里云CDN控制台。

缓存配置及工作机制

在正式开始配置之前,我们需要先了解缓存的形式和原理机制。

默认Cachekey

Cachekey是一个文件在CDN节点上缓存时唯一的身份ID,每个在CDN节点上缓存的文件都对应一个Cachekey。文件的Cachekey默认为客户端请求的URL(带参数)。

即 默认情况下,缓存内容的索引名(Cachekey)受到 域名、路径、参数 三大因素共同影响。我们可以理解为,对于同一个边缘节点,请求信息中三者完全一致的情况下将使用同一份缓存内容,三者中有任一因素变化则无法使用同一份缓存。

当我们的访问链接中路径变更或参数变更时,均会生成独立缓存。为了提升缓存效率,我们需要对业务思考以下四个问题:

  1. 业务访问时,访问URL中是否携带参数(可以分析源站nginx访问日志或业务代码的实现逻辑),这些参数的作用是什么,携带参数不同是否会影响文件响应的内容(或 参数是否会影响源站处理行为)?

如果您的URL中携带变化的参数,默认会影响缓存命中率和加速效果,推荐关注下文「缓存优化-忽略参数缓存」部分内容。

  1. 业务文件内容更新时,文件的路径(目录/文件名)是否会发生变化?

如果您的文件内容以同名文件覆盖的形式进行更新,推荐关注【缓存时间配置】中的配置引导,针对内容频繁更新的资源降低缓存时间。

  1. 您的业务中大文件缓存(平均大于20M)是否较多?

如果您的业务中大文件较多,提升缓存及回源效率推荐开启range分片功能,推荐关注下文「缓存优化-range回源」部分内容。

  1. 您的业务中是否需求针对完全相同的访问URL区分不同的缓存?

即同一个uri对应的资源有多个版本,例如同一个页面的不同压缩格式,一个图片的不同尺寸(甚至也可能是完全不同的内容),服务端通过收到的请求的uri以及一些决定版本的头部信息来确定应该给客户端返回哪个版本,推荐关注下文「缓存优化-多副本及自定义缓存」。

访问URL的格式和场景和缓存利用效率息息相关,在下文的内容中,我们可以通过忽略参数缓存、cachekey改写等功能,对域名的缓存索引方式进行调整,以适配您的业务场景。

小提示:在CDN使用场景中,推荐您的源站更新资源时,考虑以不同的文件名作为新旧版本区分,例如img-v1.0.jpg、img-v2.1.jpg的方式命名,以实现便捷区分新旧缓存的效果。

缓存更新机制

CDN缓存更新主要有两种方式:

  1. 超出缓存的过期时间

当CDN节点上的缓存失效后,缓存不会立即被清理,在源站返回last-modified/etag头部情况下,CDN将会回源发起缓存有效性校验(即协商缓存)。

可以通俗地理解为,CDN将之前缓存文件的标识信息带回源站询问是否发生变化。

  • 如源站内容未发生变化,源站将返回304状态码,CDN节点仅更新缓存的有效周期,不变更缓存内容,截止下次缓存时间到期前不会再次回源;
  • 如源站内容发生变化,源站将返回200状态码和更新后的内容,CDN节点将更新缓存的有效周期并覆盖缓存内容,实现文件更新的效果。
  1. 主动更新

当CDN节点上的缓存未失效,但源站内容已经发生变化,业务上需要立即更新CDN上资源的缓存时,需要使用CDN的缓存刷新功能,您需要通过 CDN控制台-刷新预热 或者 API接口 下发缓存的刷新任务,详细操作和说明将在

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值