本文为您介绍如何在视频点播控制台中配置缓存规则。
缓存规则适用于点播加速域名、自定义源站加速域名和封面加速域名。
说明
如何判断是否需要缓存某个文件,详见下文判断文件是否需要缓存。
每个缓存文件都有一个过期时间。如果缓存的文件达到了过期时间,视频点播会判定该文件已过期。之后,如果收到该文件的请求,视频点播会校验缓存文件在源站是否有更新。根据校验结果,视频点播再判断是否更新缓存。详见下文过期缓存文件的回源校验流程。
在视频点播中,您可以通过配置缓存规则来控制视频点播的缓存行为。在缓存规则中,您可以指定如下内容:
视频点播按照规则的优先级来匹配用户请求。如果匹配到一条规则,视频点播将不再匹配后续规则。
说明
您可以修改或者删除已有的缓存规则。但是在您操作前,您必须了解操作带来的影响。详见变更缓存规则的影响。
视频点播对请求的文件,不进行缓存的情况如下:
Content-Length
的字段值为 0
。GET
也不是 HEAD
。HEAD
请求,源站响应头包含 Transfer-Encoding:chunked
。登录视频点播控制台,进入指定空间。
单击左侧导航栏分发加速设置 > 域名管理。
根据您的域名类型,选择点播加速域名、自定义源站加速域名或封面加速域名页签。
在域名列表中找到您需要配置的域名,单击操作列的配置按钮。
单击页面左下角的修改配置按钮。
在缓存配置页签下的缓存规则区域,单击添加规则。
根据页面提示配置缓存规则。
详细参数说明如下表示。
参数 | 说明 |
---|---|
优先级 | 规则的优先级。数字 1 的规则优先级最高。在收到请求时,CDN 按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了某一条规则,CDN 就停止匹配其余规则。您可以通过拖拽调整规则的优先级。 |
规则类型 | 缓存规则的类型,表示规则对哪个类型的对象生效。支持以下选项:
|
规则 | 根据规则类型,输入规则的内容。长度不能超过 1,024 个字符。不能包含以下字符:连续斜杠
|
缓存策略 | 支持以下取值:
关于缓存策略对于缓存行为的影响,参见判断文件是否需要缓存。 |
缓存时间 | 指定一个时间单位并输入缓存的时间。您可以指定的最长时间是 10 年,也就是 315,360,000 秒。该配置的说明如下:
对于缓存策略是默认策略的规则,如果您指定缓存时间为 0,则表示不缓存匹配的文件。缓存时间是 0 的规则建议放在缓存规则列表中的第一条。 |
忽略大小写 | 设置视频点播在使用规则匹配用户请求的文件时是否区分大小写。请求 URL 的其余部分不受该配置影响。该配置仅在缓存策略是默认策略时有效,默认设置是关闭。关闭表示区分大小写。假设对于文件后缀规则,您设置忽略大小写为关闭,您输入的规则内容是 |
单击保存配置。
在视频点播从源站获取用户请求的文件时,缓存的流程如下:
Cache-Control: no-store
或 Cache-Control: private
,该文件依然被缓存。注意
对满足文件不缓存的用户请求,强制缓存无法使文件被缓存。
Cache-Control: no-store
或 Cache-Control: private
,该文件不被缓存。0
,该文件不被缓存。视频点播按照以下列表项的顺序处理响应头字段。如果响应头匹配一个列表项,视频点播将不再匹配其他列表项。
Cache-Control: no-store
或 Cache-Control: private
。此时,该文件不被缓存。Cache-Control: max-age
,此时:
Expires
,此时:
视频点播判定缓存的文件过期的情况如下:
cache-control: no-cache
或者 Cache-Control: max-age=0
。在该情况下,虽然视频点播会缓存该文件,但是视频点播判定该文件已过期。缓存文件过期后,如果收到文件的请求,视频点播会向源站校验该缓存文件是否有更新。回源校验的流程如下:
Last-Modified
字段或者 ETag
字段,视频点播会在回源请求头中包含文件校验字段。ETag
的优先级高于 Last-Modified
。
ETag
字段存在,请求头中会包含 If-None-Match
这个校验字段。该字段的值就是 ETag
的值。ETag
不存在但是 Last-Modified
存在,请求头中会包含 If-Modified-Since
这个校验字段。该字段的值就是 Last-Modified
的值。Last-Modified
和 ETag
字段,回源请求头中不会包含文件校验字段。在视频点播收到源站响应后,根据判断文件是否需要缓存处理响应中包含的文件。假设一个文件请求匹配了某条缓存规则而被视频点播缓存,并且该缓存文件还未过期。此时,如果您修改或者删除了该缓存规则,视频点播会根据判断文件是否需要缓存的流程刷新该缓存文件的过期时间。
如果该缓存文件不匹配任何规则,并且该缓存文件的源站响应头不包含 Cache-Control: max-age
和 Expires
,那么视频点播会按以下方式处理该缓存文件:
Last-Modified
字段,视频点播会基于 Last-Modified 计算一个时间。该文件的缓存过期时间 = 当前时间 + 计算的缓存时间。
Last-Modified
字段,视频点播判定该文件已过期。如果该缓存文件已过期,在收到该文件的请求时,视频点播会遵循过期缓存文件的回源校验流程。
计算 (当前时间 - Last-Modified
)* 0.1。单位是秒。
计算结果 < 1小时
,缓存时间是 1小时。1小时 <= 计算结果 <= 1天
,缓存时间是实际的计算结果。计算结果 > 1 天
,缓存时间是 1天。