缓存规则配置

更新时间:2024-07-17 17:19:56

CDNetworks CDN平台可让您在平台上自定义您网站的资源文件在CDN节点的缓存规则,您可以针对不同文件类型、请求URL等配置缓存时间和缓存策略,达到您希望在CDN平台生效的缓存效果。同时,您的域名在CDNetworks CDN平台进行加速分发的时候,平台会有一些默认的缓存规则,在您没有自定义规则时,您配置在平台上的源站资源文件将遵循默认的缓存规则在CDN节点进行缓存。
CDNetworks CDN平台根据您的源站响应配置和用户请求内容,有不同的缓存策略和默认缓存时间。
首先,针对您的源站响应配置的规则,CDNetworks CDN平台的默认缓存规则如下:

  • 如果源站返回的响应头携带不缓存的参数时,例如Cache-Control:no-store,no-cache,must-revalidate,post-check=0,pre-check=0Pragma:no-cache等,或有鉴权头部标识Authorization的请求且响应头没有配置Cache-control:public,则CDN节点默认不缓存您这部分源站的内容;
  • 如果源站返回的响应头没有携带上述的不缓存的参数时,或者有鉴权头标识Authorization且响应头配置Cache-control:public,则可以按照平台默认缓存策略和时间或您自定义的缓存规则执行(平台默认规则或您自定义的规则可能存在对个别类型的文件内容不在CDN节点进行缓存的设定)。

其次,对不同的文件类型和请求方式,CDNetworks CDN平台也有不同的缓存策略和默认缓存时间,具体如下方描述:

请求类型 文件/协议类型 默认缓存策略/缓存时间
带问号请求 php,aspx,asp,jsp,do,dwr,cgi,fcgi,action,ashx,axd,json 不缓存
带问号请求 mp4,ts,f4v,f4vcrc7z,apk,wdf,cab,dhp,exe,flv,gz,ipa,iso,mpk,MPQ,pbcv,pxl,qnp,r00,rar,xy,xy2,zip,CAB 30天
带问号请求 shtml,html,htm,js 12小时
带问号请求 gif,swf,png,bmp 24小时
不带问号请求 cgi 10分钟
所有请求 mp3,wma 12-24小时
所有请求 wmv 24小时
所有请求 ftp协议 24-168小时
所有请求 gopher协议 0-24小时
所有请求 其他文件/协议类型 24小时

对于上述的默认缓存规则,您可以在本教程中找到自定义修改该缓存策略的方法。

如何设置缓存规则

  1. 登录CDNetworks控制台, 选择对应的产品。
  2. 进入自助配置页面,找到要设置的域名,点击上方配置修改或者域名右侧的编辑按钮온라인 지원센터 변경 안내
  3. 进入配置修改页面,找到缓存优化下的缓存规则配置,点击添加按钮。
  4. 进入规则编辑页面,可以根据您的需要,添加以下配置项。


生效范围
CDNetworks CDN平台为您提供以下几个生效范围选项,您可以自己选择自定义缓存规则要适用的请求内容。

参数 描述
所有请求 表示所有面向关联该配置的域名发起的内容请求都适用于该规则。
仅首页 表示仅针对http://domain/https://domain/根目录格式的请求适用于该规则。
指定文件类型 表示所有面向指定文件类型的内容请求,都适用于该规则;可选择常用类型或自定义文件类型,多个文件类型之间以;分隔,例如:ace;aac
指定URI 可以设置特定URI的请求执行该缓存规则,支持选择精准配置或者忽略参数匹配,您可以配置多条URI,以换行符分隔;
精准配置:用户请求的URI需要与您配置的URI完全匹配,该规则才会生效;
忽略参数匹配:如果用户请求的URI带问号参数,则忽略问号后的参数,仅问号前的URI和您配置的URI匹配,该规则就会生效;
需要注意的是,您输入的URI不包含http://或者https://,仅配置URI部分,例如:完整URL为https://domain/browse/index.html,您仅配置/browse/index.html即可。
指定目录 表示所有面向指定目录的内容请求,都适用于该规则;目录必须以/开头和结尾,由字母、数字及部分特殊符号(包含下划线、减号、百分号、点)任意组合,例如:/file/1%1/,表示http://domain/file/1%1/该目录及目录下所有文件的请求都适用于该规则。需要注意的是,多个目录需要用换行符分隔。
URL正则匹配 您也可以选择直接填入正则表达式,不需要以/开头,平台默认会在配置中补充URL前缀^https?://[^/]/,例如: .*.jpg$,表示针对关联该规则的所有域名对JPG文件的请求都将匹配该缓存策略。

您除了可以在上述列表中选择自定义缓存规则的生效范围之外,还可以选择进阶范围配置,与生效范围中您选择的配置项是的关系,共同组成该缓存规则的实际生效范围。在进阶范围配置中,您有以下几个选项:

参数 描述
UA或者例外的UA 您可配置对特定UA的请求执行或不执行该缓存规则,支持您填写正则表达式,例如:^Mozilla/4.0$,表示对携带该UA头的请求执行或不执行该缓存规则。
例外的URL(正则) 您在该配置项中,可以选择对某些特定的请求URL不执行该缓存规则,正则表示式的填写规则和上述的URL正则匹配配置项一致。

缓存时间
对匹配您定义的生效范围的请求内容,您可以在CDNetworks CDN平台上自定义这部分内容在CDN节点缓存的时间长短,当前您一共可以设置三种缓存时间相关的策略,详细如下:

参数 描述
缓存固定时间 当您的网站资源的更新频率很稳定,建议您考虑设置缓存固定时间,可优化CDN节点的命中率,降低回源的流量。
遵循源站缓存 当您的网站资源有设置缓存时间参数时,例如Expires或者Cache-control,将会在CDN节点执行您源站设置的缓存时长;需要注意的是您还是需要设置缓存时间,在您的源站因某些原因没有带上缓存时间参数时,还能够按照您在这里配置的时间对您的网站资源进行缓存。
不缓存 当您的网站资源需要实时更新时,建议您配置不缓存,每次用户请求到CDN节点,我们都会回您的源站获取资源后再响应给用户,且不会在CDN节点进行缓存。

上述的缓存时间单位当前已支持秒,分钟,小时,天,默认为小时

当您选择缓存固定时间或者遵循源站缓存配置时,您可以额外选择高级配置,对默认的源站响应规则和客户端刷新规则进行个性化的配置。

参数 描述
忽略源的不缓存头 平台默认值为,具体可参见本文开头部分的介绍;如果您选择了,则表示忽略源站响应的头部中所有和不缓存相关的参数信息,比如Cache-Control: no-cache,将直接执行您当前定义的缓存规则。
忽略鉴权头部 平台默认值为,具体可参见本文开头部分的介绍;如果您选择了,则表示对于携带鉴权头部的请求,即使源站响应头部没有携带Cache-Control: public,同样可执行您当前定义的缓存规则。
忽略客户端刷新 设置对客户端reload请求的处理规则,您可以自定义忽略客户端刷新,即CDN节点在缓存时间内的文件将直接返回给客户端,或选择转成if-modified-since,客户端请求的资源如果在CDN边缘节点的更新时间晚于客户端记录的Last-Modified时间,则将CDN边缘节点缓存的文件资源返回给客户端,否则返回 304 Not Modified

忽略大小写
您如果选择了,即表示两个文件资源请求的URL,如果只有字母大小写的区别,都将会匹配您设置的这条缓存规则,比如您配置http://domain/a.jpg缓存1小时则在CDN边缘节点中http://domain/a.jpghttp://domain/A.jpg两个文件都将缓存1小时;
相反,如果您选择了,即不忽略请求URL的字母大小写区别,则将严格按照您在生效范围配置中的设置,匹配用户的请求,只对符合大小写要求的资源文件在CDN边缘节点进行缓存;
该配置项默认值为

优先级
您可以选择该规则生效的优先级,从1-10,数字越大匹配和执行的优先级越高。在同一匹配条件下,执行优先级高的规则。

除了通过点击添加按钮进入规则页面进行详细参数的配置外,您还可以在添加按钮右侧点击快捷配置进行缓存规则的简单配置。快捷配置中,生效范围将默认为全部请求,同时您还可以选择缓存固定时间或者遵循源站缓存对缓存时间进行设置,但不支持您在此进行高级配置的参数配置,您也可以直接选择不缓存,最后也支持您快速设置该简单规则的匹配执行优先级。


完成上述配置后,请点击确认,然后选择下一步提交您的配置。为了避免配置影响您的生产环境,我们推荐您先预部署,把配置生效到测试环境中来验证您的配置是否正确。当配置确定无误后,单击直接部署将配置正式生效到线上环境,通常约3-5分钟后,配置将正式生效到线上环境。关于预部署测试的更多细节,请参考教程通过预部署来验证配置是否生效

配置示例

示例一:来自特定UA头请求的指定文件类型,执行固定的缓存时间
关联该规则的域名,当请求的文件类型为png;jpeg,且UA头为Mozilla/4.0时,将对该类型请求的资源在CDN节点执行6个小时的固定缓存时间,且强制忽略了源站响应头携带的不缓存参数和请求携带的鉴权头部配置,以及客户端的刷新请求。


注意事项

您根据该教程配置的缓存规则是在CDN节点上生效;
不同的加速产品,如静态加速和流媒体加速产品平台中,可能对相同的文件会执行不同的默认缓存规则,本文提供的默认规则供您大致参考,如果默认规则对于您的网站非常重要,请联系技术支持进行确认。

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!