CDN加速静态资源时,将源站上的资源缓存到距离客户端最近的CDN节点上。当您访问该静态资源时,可直接从缓存中获取,本文主要介绍如何设置服务器端的缓存过期时间。
详细信息
过期时间控制支持三个维度,优先级依次为控制台设置>源站Header设置>Cache的默认策略设置。
关于控制台设置的详细说明,请参见配置缓存过期时间。
关于源站Header设置的详细说明,请参见WebServer缓存策略设置。
Cache的默认策略是在您既没有在控制台设置过期时间,也没有在源站设置过期时间的情况下,会执行一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题。关于Cache的默认策略设置的详细说明,请参见CDN节点默认缓存策略。
说明关于OSS缓存策略设置,请参见管理文件元数据。
WebServer缓存策略设置
设置Nginx缓存策略详细操作,请参见设置Nginx缓存策略。
设置Apache缓存策略详细操作,请参见设置Apache缓存策略。
设置IIS缓存策略详细操作,请参见设置IIS缓存策略。
CDN节点默认缓存策略
因为网站开发及其相关技术人员更清楚自身网站的业务逻辑、静态和动态因素,所以建议您通过控制台根据文件类型和文件所在目录,详情请参见配置缓存过期时间。
如果您已经配置了缓存策略,那么Cache的默认缓存策略不生效。
默认情况下,CDN节点将根据公式计算出默认的缓存时间。为了便于理解,此处将介绍默认缓存时间的计算公式和相关示例。
计算公式。该公式分为如下三个步骤。
说明缓存时间为t,单位为秒(s);Curtime为当前时间,Last_Modified为源站的Last-Modified响应头。
计算t1的值。
t1 = (Curtime - Last_Modified) * 0.1
将上一步计算的t1之与10进行比较,取最大值为t2。
t2 = max(10,t1)
通过上一步计算的t2值与3600进行比较,取最小值为t,则t为缓存时间。
t = min(t2,3600)
示例如下。
当对象的
Last-Modified
为20140801 00:00:00
,当前时间Curtime为20140801 00:10:00
,则t1=(Curtime-Last_modified)*0.1=60s,t2=max(10,t1)=60s,t=min(t2,3600)=60s,那么缓存时间为60s。当对象的
Last-Modified
为20140801 00:00:00
,当前时间Curtime为20140802 00:00:00
,则t1=(Curtime-Last_modified)*0.1=8640s,t2=max(10,t1)=8640s,t=min(t2,3600)=3600s,那么缓存时间为3600s。当对象的
Last-Modified
为20140801 00:00:00
,当前时间Curtime为20140801 00:01:00
, 则t1=(Curtime-Last_modified)*0.1=6s,t2=max(10,t1)=10s,t=min(t2,3600)=10s,那么缓存时间为10s。
如果源站没有
Last-Modified
响应头,但有ETag
,则该对象极有可能是静态资源,将其默认缓存时间设置为dft_expires
指令配置的最小值。如果源站没有
Last-Modified
响应头,也没有ETag
,则认为该对象为动态内容,将其默认缓存时间设置为0,每次都回源。