资源刷新
刷新操作的本质是向边缘节点下发缓存失效指令,而非直接删除文件。边缘节点收到指令后,会将匹配的缓存资源标记为"失效"或"过期"。当用户再次请求该资源时,边缘节点发现缓存已失效,便会回源获取最新资源,并在返回给用户的同时重新缓存。
控制台默认刷新方式说明:在DCDN控制台执行目录刷新或正则刷新时,默认采用标记刷新方式。标记刷新仅标记缓存过期,当边缘节点回源时,会携带If-Modified-Since或If-None-Match请求头。若源站返回304 Not Modified,边缘节点将保留旧缓存副本。这种方式可节省回源流量,但在某些场景下(如源站同名更新、违规内容清理、配置变更后)可能导致用户仍访问到旧内容。若需彻底清除缓存,建议使用API调用刷新缓存接口,并将Force参数设置为true进行强制刷新。
适用场景
资源更新和发布:源站的旧资源更新或升级后,为避免用户仍访问到旧的缓存资源,可提交对应资源的URL或目录进行刷新,确保用户访问到最新的资源并缓存至边缘节点。
违规资源清理:源站存在不合规内容时,删除源站资源后,由于边缘节点仍可能存在缓存,资源仍可能被访问到。此时可通过URL刷新功能更新缓存资源,确保违规内容及时清除。
资源预热
预热操作由边缘节点根据提交的URL列表,主动向源站发起请求,将资源缓存到边缘节点上,而非源站主动推送。预热可提升新资源或活动页面的首次访问速度,同时减少活动上线时的回源压力,保护源站。
预热机制说明:预热操作默认将资源缓存至L2回源节点(二级缓存层),而非直接分发至所有L1边缘节点。当用户首次访问某资源时,L1边缘节点会从L2回源节点或源站拉取内容并缓存。因此,预热操作主要解决的是降低源站压力的问题,L1边缘节点的全面缓存覆盖依赖于用户的实际访问分布。只有当用户实际访问某L1节点后,该节点完成本地缓存,后续同区域用户才能直接从L1命中缓存获得加速。
适用场景
首次接入DCDN:首次接入DCDN后,可将热点静态资源提前预热至边缘节点。用户访问时可直接由边缘节点响应,避免初次访问速度慢的问题,提升用户体验。
运营活动:运营大型活动时,提前将活动页涉及的静态资源预热至边缘节点。活动开始后,用户访问的所有静态资源均已缓存至边缘节点,由边缘节点直接响应,确保活动页面快速加载。
安装包或其他大文件发布:新版本安装包或升级包发布前,提前将资源预热至边缘节点。产品正式上线后,用户的下载请求将直接由边缘节点响应,提升下载速度,降低源站压力。
缓存层级与效果
预热操作主要将资源缓存至 L2 汇聚节点,而非所有 L1 边缘节点。用户首次访问时,L1 边缘节点会从 L2 节点或源站拉取资源。因此,预热的主要目的是降低源站压力,而非保证所有 L1 边缘节点立即命中缓存。
效果评估:预热有助于提升缓存命中率,但对于小文件或非热点文件,建议合理评估预热成本。预热会产生回源流量,大致等于单个文件大小乘以 L2 节点数量。
适用场景
下表列出了刷新和预热功能常见的适用场景。
功能 | 适用场景 |
刷新 |
|
预热 |
|
注意事项
缓存刷新注意事项:
大批量提交刷新任务会清空较多缓存,导致回源带宽和请求突增,这会增加源站压力,建议在网站流量的低峰时期操作。
刷新任务从提交到生效,大约需要5~6分钟,如果文件或者目录配置的缓存过期时间少于5分钟,您无需执行刷新操作,等待文件或者目录缓存超时更新即可。
URL刷新、目录刷新和正则刷新都已支持共享缓存。在域名配置了共享缓存的情况下,使用主域名或者任意一个关联域名来提交刷新任务,都可以刷掉缓存。
缓存预热注意事项:
提交预热任务并成功执行后,DCDN节点会立即回源站加载所需资源,因此大批量提交预热任务会生成较多的并发回源任务,导致回源带宽和请求突增,建议在网站流量的低峰时期操作。
预热请求默认携带的header是
Accept-Encoding:gzip,如果您需要预热请求携带其他header,或者实现多副本预热,那么可以使用OpenAPI接口预热URL,并通过设定请求参数WithHeader来实现自定义预热header。预热时,如果源站返回307等重定向相关的状态码,预热任务并不会跟随重定向地址继续完成预热,最终会导致预热失败。如果源站返回的是301或者302状态码,并且DCDN上已经开启了配置回源301/302跟随,这种情况下正常预热不受影响。
共同注意事项:
如果域名配置了重写访问URL,节点将会使用重写以后的URL来生成CacheKey,因此需要提交重写后的URL来进行刷新预热操作。
使用RAM用户刷新和预热需先获得授权,请参见授予RAM用户刷新预热权限完成授权。
URL刷新、缓存预热任务一旦下发成功,在任务执行完之前无法停止。
提交缓存刷新或预热任务时,您提交的URI中若包含非ASCII字符(例如:空格、中文、特殊字符)需要您先对URL进行编码处理,否则内容管理系统将无法识别任务。请确保您提交的URI为编码后的格式。
刷新资源
登录DCDN控制台。
在左侧导航栏,选择。
在刷新缓存页签,配置刷新规则。
参数
说明
操作类型
选择刷新。
刷新类型
支持URL、目录、正则刷新。
URL
默认情况下,一个账号每日最多可以提交10,000条URL刷新和100条目录刷新,目录刷新包含子目录。如果您的阿里云账号的日带宽峰值大于200Mbps,您可以通过配额管理申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。
默认情况下,一个账号每日最多可以提交20条正则刷新,如果您的阿里云账号的日带宽峰值大于10 Gbps,您可以通过提交工单来申请提升每日配额。
URL刷新
输入的URL必须带有
http://或https://。刷新多个URL时,请按照一行一个URL进行输入。
目录刷新
输入的URL必须以
http://或https://开头,以正斜线(/)结尾。刷新根目录下所有文件:
http://example.com/。刷新子目录
/path/test/下的所有文件:http://example.com/path/test/。
刷新多个URL时,请按照一行一个URL进行输入。
每次最多可以提交100条目录刷新,单个域名每分钟最多可以提交100条目录刷新。
目录刷新默认采用“刷新变更资源”方式,如果用户请求的内容匹配到了目录下的资源,DCDN节点将会回源获取资源的Last-Modified信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,则回源拉取新资源返回给用户,并重新缓存该资源。
正则刷新
详情请参见正则刷新说明。
单击提交。
查看刷新进度。
提交刷新任务后,您可以在操作记录页签中查看资源刷新的详细记录和进度。刷新数量多会影响刷新进度,请您耐心等待。
预热资源
登录DCDN控制台。
在左侧导航栏,选择。
在刷新缓存页签,配置预热规则。
参数
说明
操作类型
选择预热。
刷新类型
仅支持URL预热。
URL
输入的URL必须带有
http://或https://,预热URL必须是精确的资源文件路径,不支持输入以/结尾的目录。预热多个URL时,请按照一行一个URL进行输入。
URL预热配额(每日):一个账号每日最多可以提交1000条URL预热,每次最多可以提交100条URL预热。
如果您账号的日带宽峰值大于500Mbps,可参考配额管理申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。
预热队列规则:每个账号的预热队列最大为100,000条URL,DCDN根据URL提交的先后顺序进行预热;当预热队列中待预热的URL达到了100,000条时,DCDN将会拒绝接收新的预热任务。
预热速度:预热任务的执行速度与需要预热资源的文件平均大小有关,文件平均大小越小,预热速度越快。
单击提交。
查看预热进度。
提交预热任务后,您可以在操作记录页签中查看资源预热的详细记录和进度。预热数量多会影响预热进度,请您耐心等待。
相关API
您可以调用API接口,实现资源的刷新和预热,详情如下表所示。
API | 描述 |
刷新节点上的文件内容、刷新指定URL内容至Cache节点。支持URL批量刷新。 说明 URL刷新、目录刷新和正则刷新都已支持共享缓存。在域名配置了共享缓存的情况下,使用主域名或者任意一个关联域名来提交刷新任务,都可以刷掉缓存。 | |
将源站的内容主动预热到L2 Cache节点上,用户首次访问可直接命中缓存,缓解源站压力。 | |
查询当日刷新URL、预热URL及刷新目录的上限和剩余次数。 | |
查询刷新、预热状态是否在全网生效。 | |
查询用户资源上限及已使用情况。 | |
查询刷新或预热是否在全网生效。 |