刷新和预热相关常见问题

5255 Views

刷新和预热有什么区别?

刷新和预热有先后顺序吗?

刷新预热时,输入源站URL还是加速域名URL?

如何刷新泛域名的缓存?

刷新和预热任务需要多久生效?

预热时能携带自定义请求头预热吗?

如何提高刷新和预热的每日配额上限?

是否支持自动化刷新或预热?

如何查看CDN的预热任务是否执行完成?

配置CDN后如何对文件进行同名更新?

预热失败了怎么办?

为什么使用CDN刷新预热功能后访问的资源没有更新?

是否需要分别对HTTP和HTTPS刷新和预热?

是否支持预热M3U8文件?

已经进行了缓存预热,为什么下载速度先快后慢?

刷新和预热有什么区别?刷新:把CDN所有节点上对应的缓存资源标记为失效,当用户再次请求时,CDN会直接回源站获取对应的资源并返回给用户,同时将资源重新缓存到CDN节点。刷新功能会降低缓存命中率。

预热:源站主动将对应的资源缓存到CDN节点,当您首次请求资源时,即可直接从CDN节点获取到最新的资源,无需再回源站获取。预热功能会提高缓存命中率。

刷新和预热有先后顺序吗?刷新和预热通常是两种不同的操作,并不一定有严格的先后顺序。但在实际应用中,根据场景可能会有一个自然的逻辑顺序。当您的源站资源更新,需要更新CDN节点缓存时:

先刷新:删除CDN缓存中的旧文件,让后续的访问都能获取到源站上最新的内容。

后预热:待刷新任务生效后再进行预热操作,将最新的内容缓存到CDN节点,保证用户第一时间获取到速度最快的服务。

如果您首次接入CDN,节点无缓存,可以直接执行预热操作,将资源缓存到CDN节点。

刷新预热时,输入源站URL还是加速域名URL?刷新预热是对加速域名对应的URL内容进行操作,所以,您需要输入的是基于加速域名下的URL,而不是源站的原始URL。这样做的原因是CDN系统通过加速域名来识别和管理缓存资源,对加速域名下指定路径的请求进行刷新或预热,可以确保CDN节点上的缓存内容得到及时更新或提前加载。

如何刷新泛域名的缓存?阿里云CDN不支持直接刷新整个泛域名下的所有缓存内容,需要对具体的子域名对应的目录或特定URL路径分别提交刷新请求,不能直接输入https://*.example.com/file01.html或https://*.example.com/file02/。刷新多个URL时,请按照一行一个URL进行输入。

刷新和预热任务需要多久生效?刷新任务从提交到生效,大约需要5~6分钟,如果文件或者目录配置的缓存过期时间少于5分钟,您无需执行刷新操作,等待文件或者目录缓存超时更新即可。

预热任务从提交到预热完成,实际执行时间视预热文件大小而定,大约需要5~30分钟,文件平均大小越小,预热速度越快。

预热时能携带自定义请求头预热吗?预热请求默认携带的header是Accept-Encoding:gzip,如果您需要预热请求携带其他header,或者实现多副本预热,那么可以使用OpenAPI接口PushObjectCache-预热URL,并通过设定请求参数WithHeader来实现自定义预热header。

如何提高刷新和预热的每日配额上限?URL刷新和目录刷新

默认情况下,一个账号每日最多可以提交10,000条URL刷新和100条目录刷新,目录刷新包含子目录。如果您的阿里云账号的日带宽峰值大于200Mbps,您可以通过配额管理申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。

正则刷新

默认情况下,一个账号每日最多可以提交20条正则刷新,如果您的阿里云账号的日带宽峰值大于10Gbps,您可以通过填写信息来申请提升每日配额。

预热

默认情况下,一个账号每日最多可以提交1000条URL预热任务,如果您账号的日带宽峰值大于200Mbps,可通过配额管理申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。

每个账号的预热队列最大为100,000条URL,CDN根据URL提交的先后顺序进行预热;当预热队列中待预热的URL达到了100,000条时,CDN将会拒绝接收新的预热任务。

是否支持自动化刷新或预热?如果您需要自动化刷新或预热,请参见使用自动化脚本刷新和预热。

如何查看CDN的预热任务是否执行完成?登录CDN控制台。

在左侧导航栏,单击刷新预热。

操作类型选择预热,在URL框内输入URL地址,单击提交。提交预热任务后,您可以在操作记录页签中查看资源预热的详细记录和进度。预热进度为100%,表示预热任务执行完成。预热数量多会影响预热进度,请您耐心等待。

说明 预热任务的状态为成功,表示预热任务提交成功,并不代表文件已经预热结束。

执行如下命令,查看预热任务的执行状态。

curl -I 'http://example.aliyundoc.com/test.json'系统显示类似如下。

说明 Via的前半部分代表L2节点状态,其中的“H”表示命中,说明文件已经预热到L2节点,不需要再回源站。

Via的后半部分代表L1节点的状态,“M”表示L1节点上没有缓存,需要向L2节点回源。

相关文档调用DescribeRefreshTaskById,查询刷新状态和预热状态是否在全网生效,详情请参见DescribeRefreshTaskById - 查询刷新预热任务-按ID。

配置CDN后如何对文件进行同名更新?使用CDN加速资源时,请参见以下方法进行文件更新:

建议您源站的内容不使用同名更新,而是采用版本号的方式同步。

为了能准确找到更新前和更新后的源站内容,建议您源站的内容以版本号的方式同步,即更新源站内容时采用不同的名称。例如,采用img-v1.0.jpg、img-v2.1.jpg的方式命名。

对于必须进行同名更新的文件,可以从控制台或是OpenAPI提交刷新请求。控制台操作请参见刷新和预热资源,OpenAPI操作请参见刷新预热。使用CDN刷新预热功能后,访问的资源如没有更新,请参见为什么使用CDN刷新预热功能后访问的资源没有更新?

预热失败了怎么办?预热失败的可能原因是:

确认URL正确性:验证预热的URL是否正确,包括是否有拼写错误、路径错误或者文件实际不存在等问题,确认URL是否可以直接在浏览器中访问。

检查源站状态:确认源站服务器是否正常工作,没有出现过载或宕机情况,如不能正常访问也将造成预热失败。

控制预热任务的数量:如果同时提交了大量的预热任务,可能会因为系统繁忙导致一部分任务失败。预热时请尽量分批次执行,避免对源站带宽造成过大压力。

检查资源可缓存性:

确认预热的资源是否允许被缓存。如果资源设置了Cache-Control头部为no-cache、no-store或private,并且CDN配置遵循源站头信息,则会导致资源无法被缓存。

检查资源对应的缓存过期时间(如Expires或max-age),确保其不是0,非零值表示资源可以被缓存。

CDN缓存规则请参见阿里云CDN默认缓存规则及优先级。

目前不支持预热目录。

为什么使用CDN刷新预热功能后访问的资源没有更新?问题原因导致资源没有更新的常见原因有以下3种:

使用CDN刷新预热虽然清除了CDN缓存,但是受到浏览器缓存的影响,导致访问到旧的资源。

源站的资源没有更新,本身就是旧的资源。

刷新预热任务没有执行完毕。

解决方案根据问题原因选择其对应的解决方法:

尝试清理浏览器缓存,然后刷新页面,查看资源是否更新。

将站点域名直接绑定源站(通过修改本地host的方式),直接访问源站,检查源站的资源是否更新。如果资源没有更新,请更新源站的资源,再使用CDN加速。

登录CDN控制台,检查刷新预热任务是否执行完毕,如果没有执行完毕,建议重新执行任务,如何执行请参见刷新和预热资源。

是否需要分别对HTTP和HTTPS刷新和预热?不需要,只需要刷新或预热HTTP或HTTPS其中一种即可。例如您需要预热aaa.mp4文件,您只需预热https://example.com/aaa.mp4即可,不必再预热http://example.com/aaa.mp4。

是否支持预热M3U8文件?M3U8文件是一种基于HTTP Live Streaming (HLS) 的视频流媒体播放列表格式,它由苹果公司开发。M3U8是M3U播放列表文件的扩展,其中“8”代表文件使用UTF-8字符编码。该文件格式通常用于在线流媒体服务,以提供连续播放的多媒体内容。M3U8文件是一个纯文本文件,包含了分段(通常是TS或MP4文件)视频文件的路径信息,这些分段视频文件被称为“切片”。

预热只作用于M3U8文件本身,不会自动预热列表中引用的各个TS切片文件。您可以使用脚本来预热M3U8文件,详情请参见CDN和视频点播中使用脚本刷新预热M3U8资源。

已经进行了缓存预热,为什么下载速度先快后慢?CDN预热是多个节点同时进行下载,开始某个节点的下载速度较快,随着更多节点的加入,下载速度受到源站服务器带宽的影响,呈现先快后慢的情况。对于带宽较小的源站服务器所需预热时间会长一点,因此,可以通过升级带宽来解决或者使用OSS来存储大文件。使用CDN对OSS资源进行加速,以获得更好的加速效果。

廚房檯面怎麼選?4種常見材質介紹
行動電源能用多久?深度解析行動電源使用壽命與效能