阿里云CDN缓存配置及优化-oss绑定CDN缓存自动刷新功能

参考阿里云官网文档:https://help.aliyun.com/practice_detail/603170

1.缓存时间配置

在缓存管理中,可以方便地指定目录和文件后缀名在CDN节点上的缓存时间,缓存时长配置的长短,取决于源站对该文件的变更频率。我们需要分析下业务中以下几个问题:

您的域名下有哪些类型的资源内容?

例如,该加速域名下有html/js/css/mp4/apk等文件类型的内容。

您源站这些不同目录、不同类型的资源内容在什么情况下内容会变化,变化的频率如何?

例如,mp4文件的内容一般不会变化,而html是新闻门户的主页,其展示页面中的文本内容平均1小时更新一次。

您源站这些文件在变化时,文件名是否也会跟随变化?

例如,文件在更新内容时都会使用新的文件名,或 文件更新后仍然使用之前的文件名。

小提示:在下文的内容中,我们将根据此处的分析结果进行缓存时间的配置。

CDN缓存时间主要受两个部分控制:

源站返回的标准HTTP缓存控制头部(cache-control)。

您在控制台上配置的缓存时间。

配置缓存时,我们需要登录CDN控制台。在域名管理中单击目标域名,选择缓存配置。

结合上文中的业务分析,推荐您根据业务情况在CDN域名上配置缓存时间。

如果没有明确业务更新周期,可缓存资源推荐配置一个月以上的缓存时间,如果源站的资源发生变更,您可以通过CDN的刷新缓存功能清理节点上的缓存(下章节中会详细说明)。

需要注意的是,如您的业务中有动态请求(如表单提交/登录/评论/上传等交互),需要设置对应路径或文件类型的缓存时间为0。如果您需要对动态请求也进行加速,优先推荐您使用全站加速(DCDN)产品。

补充说明:参考CDN产品文档,CDN节点上的缓存生效优先级如下

源站响应pragma:no-cache、cache-control:no-cache(或者no-store,或者max-age=0)时,不缓存。

CDN控制台设置的缓存过期时间或者状态码过期时间。

源站配置其他缓存规则,优先级由高至低为:cache-control>expires>last-modified>etag。

源站返回的数据中ETag、last-modified、cache-control和expires这些缓存相关的响应头都没有携带,则默认不缓存

2.oss绑定CDN缓存自动刷新功能

https://help.aliyun.com/zh/oss/user-guide/map-accelerated-domain-names

使用OSS控制台

绑定自定义域名。

登录OSS管理控制台。

单击Bucket 列表,然后单击目标Bucket名称。

在左侧导航栏,选择Bucket 配置>域名管理。

在域名管理页面,单击绑定域名。

在绑定域名面板,输入要绑定的域名。

配置CDN加速服务。

在域名列表中,单击目标域名右侧的未配置。

在添加域名页面,配置各项参数。配置详情,请参见添加加速域名。

单击下一步,然后单击返回域名列表。

在域名列表中,记录目标域名的CNAME值。

添加CNAME记录。

如果您的域名为非阿里云托管的域名,需在对应的域名解析商处配置云解析。如腾讯云解析(原DNSPod)或新网添加CNAME的步骤,请参见配置CNAME。

此处以阿里云托管的域名为例,添加CNAME记录步骤如下:

登录云解析DNS控制台。

单击域名解析,然后在域名解析列表中,单击目标域名右侧的解析设置。

单击添加记录,填写域名解析信息。

单击确定。

新增CNAME记录实时生效,修改CNAME记录最多72小时生效。

开启CDN缓存自动刷新。

在域名管理页签,打开目标域名右侧的CDN缓存自动刷新开关。

您希望针对指定操作触发CDN缓存自动刷新,可以单击目标域名右侧支持的操作,然后选中指定操作类型。支持的操作类型如下:

由生命周期触发的对象过期(Expire)、类型转换(TransitionStorageClass)操作不再支持CDN缓存刷新。使用CDN缓存自动刷新时有如下注意事项:

CDN缓存自动刷新功能提交的刷新URL为CNAME/ObjectName,不会刷新带请求参数的URL(图片处理、视频截帧等)。例如Bucket绑定的加速域名为example.com,当您更新Bucket根目录的a.jpg文件,则访问example/a.jpg可以获取最近一次更新的文件;访问example.com/a.jpg?x-oss-process=image/w_100可能获取的还是旧文件。

CDN缓存自动刷新功能不保证一定能成功提交刷新任务,也不保证刷新任务提交的及时性。

CDN缓存自动刷新功能仅支持少量文件的更新提交刷新任务。如果有大量文件的更新操作,可能会触发流控丢弃部分刷新任务。

相关推荐
曼城周杰伦3 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
学Linux的语莫3 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
刘九灵5 小时前
Redis ⽀持哪⼏种数据类型?适⽤场景,底层结构
redis·缓存
奥能电源7 小时前
移动充储机器人“小奥”的多场景应用(上)
阿里云·能源
运维&陈同学8 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
云计算DevOps-韩老师9 小时前
【网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析2
网络·云计算
tian2kong11 小时前
Centos 7 修改YUM镜像源地址为阿里云镜像地址
linux·阿里云·centos
dessler11 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
学Linux的语莫12 小时前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
煎饼小狗14 小时前
Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)
数据库·redis·缓存