通过刷新功能,您可以删除CDN边缘节点上已经缓存的资源,并强制CDN边缘节点回源站获取最新资源,适用于源站资源更新和发布、违规资源清理、域名配置变更等;通过预热功能,您可以在业务高峰前预先将热门资源缓存到CDN边缘节点,降低源站压力。
功能介绍
资源刷新
刷新操作的本质是向CDN边缘节点下发缓存失效指令,而非直接删除文件。边缘节点收到指令后,会将匹配的缓存资源标记为“失效”或“过期”。当用户再次请求该资源时,边缘节点发现缓存已失效,便会回源获取最新资源,并在返回给用户的同时重新缓存。
适用场景
资源更新和发布:源站的旧资源更新或升级后,为避免用户仍访问到旧的缓存资源,可通过提交对应资源的URL或目录进行刷新,确保用户访问到最新的资源并缓存至CDN边缘节点。
违规资源清理:如果您的源站存在不合规内容(如使用限制中提及的内容),删除源站资源后,由于CDN边缘节点仍可能存在缓存,资源仍可能被访问到。此时可通过URL刷新功能更新缓存资源,确保违规内容及时清除。
资源预热
预热操作是由CDN边缘节点根据您提交的URL列表,主动向源站发起请求,将资源缓存到CDN边缘节点上,而非由源站主动推送。预热可提升新资源或活动页面的首次访问速度,同时减少活动上线时的回源压力,保护源站。
适用场景
首次接入阿里云CDN:当您首次接入CDN后,可选择将热点静态资源提前预热至CDN边缘节点。用户访问时可直接由CDN边缘节点响应,避免初次访问速度慢的问题,提升用户体验。
运营活动:在运营大型活动时,提前将活动页涉及的静态资源预热至CDN边缘节点。活动开始后,用户访问的所有静态资源均已缓存至CDN边缘节点,由边缘节点直接响应,确保活动页面快速加载。
安装包或其他大文件发布:新版本安装包或升级包发布前,提前将资源预热至CDN边缘节点。产品正式上线后,用户的下载请求将直接由CDN边缘节点响应,提升下载速度,降低源站压力。
使用限制
在规划和执行刷新或预热任务前,请仔细阅读以下配额和功能限制。
操作类型 | 方式 | 配额限制 | 提额方式 |
刷新 | URL刷新 | 每个账号每日最多10000条 | |
目录刷新 | 每次最多提交100条;每个域名每分钟最多100条 | ||
正则刷新 | 每个账号每日最多20条 | ||
预热 | URL预热 | 每次最多提交100条;每个账号每日最多1000条 |
其他重要限制:
操作时机:刷新预热任务会产生回源流量,建议在业务流量低峰期执行大规模的刷新或预热任务。
权限要求:使用 RAM 用户操作时,必须先授予
cdn:PushObjectCache
(预热) 和cdn:RefreshObjectCaches
(刷新) 权限。详情请参见授予RAM用户刷新预热权限。URL 格式:提交的 URL 中若包含非 ASCII 字符(如中文、空格),必须先进行
UTF-8
百分号编码 (Percent-encoding)。共享缓存:若域名配置了共享缓存,使用主域名或任一关联域名提交刷新任务,均可使所有关联域名的缓存失效。
费用说明
刷新和预热功能本身不收取任何操作费用。
但是,这两种操作都会触发CDN边缘节点回源拉取资源,由此产生的回源流量和回源请求次数将会产生费用。计费标准遵循您所使用的源站类型:
如果源站是阿里云 OSS,将按 OSS 的公网流出流量和请求次数计费。
如果源站是 ECS 或其他服务器,将按其网络带宽或流量计费。
大规模的刷新或预热操作,尤其是在短时间内,可能会导致回源成本增加。请在操作前评估潜在的成本影响。
操作指南
刷新资源
登录CDN控制台。
在左侧导航栏,单击刷新预热。
在刷新缓存/预热缓存页签,选择操作类型为刷新。
根据您的需求,选择刷新方式并提交任务。
刷新方式
操作说明
URL刷新
目的:精确失效一个或多个具体文件的缓存。
操作:在 刷新内容 输入框中,输入完整的 URL(包含
http://
或https://
),每行一个。例如:https://www.example.com/static/image.jpg
。目录刷新
目的:失效指定 URL 目录下所有文件和子目录的缓存。
操作:输入完整的目录 URL,且必须以
/
结尾。例如:https://www.example.com/static/
。说明:此方式为变更刷新。若需强制刷新整个目录,请使用刷新缓存API并设置
Force=true
。正则刷新
目的:按正则表达式匹配 URL 路径,批量失效符合规则的资源缓存。
操作:输入带有正则表达式的 URL。例如,刷新所有
.jpg
图片:https://www.example.com/static/.*\.(jpg)
。说明:此方式为变更刷新。若需强制刷新整个目录,请使用刷新缓存API并设置
Force=true
。注意:尽量使用更精确的匹配规则,避免非预期的、大范围的缓存失效。例如,仅刷新
/images/
目录下的所有.png
文件,应使用https://www.example.com/images/.*\.png
而非https://www.example.com/.*
。单击提交,系统将开始执行刷新任务。
说明刷新任务一旦提交成功,将无法中止。
刷新任务通常需要 5-6 分钟 在全网生效。如果您的缓存过期时间本身就小于此值,则无需手动刷新。
如果您在OSS控制台开启了CDN缓存自动刷新,则无法通过CDN控制台查看OSS的缓存自动刷新任务。
预热资源
登录CDN控制台。
在左侧导航栏,单击刷新预热。
在刷新缓存/预热缓存页签,选择操作类型为预热。
在 预热内容 输入框中,输入需要预热的完整文件 URL,每行一个。不支持预热目录。例如:
https://www.example.com/install/package.zip
。单击提交,系统将开始执行预热任务。
说明刷预热任务一旦提交成功,将无法中止。
预热任务的完成时间取决于文件大小、数量和源站性能,通常需要 5-30 分钟。
自动化刷新或预热
如果您有以下情况,建议您使用自动化脚本刷新和预热:
无开发人员,需手动提交刷新预热任务,运维成本高。
刷新或预热URL过多,分批提交导致刷新或预热效率低。
需要人工或程序判断刷新预热任务是否正常进行,费时费力。
验证结果
手动查询
在操作记录页签中查看资源刷新或预热的详细记录和进度。进度为100%,表示任务执行完成。刷新或预热的数量过多,会影响任务的完成进度,请您耐心等待。
接口查询
调用DescribeRefreshTaskById接口,查询刷新或预热任务是否完成。
命令行验证
执行命令
curl -I <资源链接>
,系统显示结果如下:存在
X-Cache
的情况:X-Cache
是HIT
,说明此次请求命中缓存,预热成功。X-Cache
是MISS
,说明此次请求未命中缓存,预热任务未完成或预热失败,请重新预热。
不存在
X-Cache
的情况:如果不存在
X-Cache
,说明该资源未接入CDN,请参照快速接入阿里云CDN,先将该URL的域名接入阿里云CDN,再进行资源的预热。
拓展阅读:CDN的缓存刷新机制
CDN 提供两种缓存刷新机制:变更刷新和强制刷新,适用于不同场景,帮助您灵活高效的管理缓存内容。
变更刷新(CDN默认策略)
适用场景:常规内容更新,如发布新版静态文件。
机制:这是 URL 刷新、目录刷新和正则刷新在控制台上的默认行为。CDN 边缘节点在回源时,会携带
If-Modified-Since
或If-None-Match
请求头。源站会根据这些头信息判断资源是否已更新。效果:如果源站资源未变更,源站将返回
304 Not Modified
状态码,CDN 边缘节点会继续使用旧的缓存副本,不会消耗回源流量。这是一种节省成本和源站资源的优化方式。
强制刷新
适用场景:紧急清理违规或错误资源、修复错误的
Cache-Control
响应头配置后,需要强制全网更新的场景。机制:通过刷新缓存API提交刷新任务时,将参数
Force
设置为true
来触发。此模式下,CDN 边缘节点会无条件地将缓存资源标记为失效。效果:下次访问该资源时,CDN 边缘节点将必须回源获取新版本,即使源站上的文件并未改变。
常见问题
相关API
您可以调用API接口,实现资源的刷新和预热,敬请参考刷新和预热API。