当您的静态资源未返回响应头EtagLast-modified时,缓存失败,导致CDN缓存命中率低。您可以针对该资源配置缓存规则,使其在CDN上按照缓存规则进行缓存,来提升缓存命中率。

前提条件

执行本文操作之前,请确保您已完成阿里云账号注册实名认证

背景信息

当CDN未配置缓存规则时,如果静态文件未返回响应头EtagLast-modified,则该静态文件不能缓存在CDN节点上。针对该资源配置缓存规则,操作方法如下。

例如:响应头x-swift为静态文件,在CDN上的缓存时间为0秒,说明CDN不缓存该文件,原因是响应头中没有带Etag和Last-modified。
x响应头异常现象
当源站配置了以下响应头时,及时您配置了缓存规则,CDN也不会对该资源进行缓存,因为这些响应头在CDN缓存规则中的优先级最高。
  • 有s-maxage=0、max-age=0、no-cache、no-store、private中的任一种。
  • 有s-maxage或s-maxage=0。
  • 有Pragma: no-cache。

操作步骤

  1. 登录CDN控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的管理
  4. 在指定域名的左侧导航栏,单击缓存配置
  5. 缓存过期时间页签,单击添加

    缓存过期时间
  6. 配置缓存规则,您可以选择按目录或文件后缀名进行配置。
    配置项 说明
    类型
    • 目录:指定路径下的缓存资源。
    • 文件后缀名:指定文件类型的缓存资源。
    地址
    • 添加单条目录(支持完整路径)时,须以“/”开头,如/directory/aaa
    • 添加多个文件后缀名时,须以半角逗号分隔,如jpg,txt。
    过期时间 资源对应的缓存时间。过期时间最多设置为3年,建议您参照以下规则进行配置:
    • 对于不经常更新的静态文件(如图片类型、应用下载类型等),建议您将缓存时间设置为1个月以上。
    • 对于频繁更新的静态文件(如js、css等),您可以根据实际业务情况设置。
    • 对于动态文件(如php、jsp、asp等),建议您将缓存时间设置为0s,即不缓存。
    权重 缓存规则的优先级。
    说明
    • 取值范围:1 ~ 99间的整数。数字越大,优先级越高,优先生效。
    • 不推荐设置相同的权重,权重相同的两条缓存策略优先级随机。
    示例:为加速域名example.aliyun.com配置三条缓存策略,缓存策略1优先生效。
    • 缓存策略1:文件名后缀为jpg、png的所有资源过期时间设置为1月,权重设置为90。
    • 缓存策略2:目录为/www/dir/aaa过期时间设置为1小时,权重设置为70。
    • 缓存策略3:完整路径为/www/dir/aaa/example.php过期时间设置为0s,权重设置为80。
  7. 单击确定,配置成功。