CDN加速

自定义缓存Key

更新时间:2020-12-15 09:43:17

功能介绍

缓存Key是网宿缓存资源的标识,除了URL路径信息不同可能会影响缓存(相关功能,如去问号缓存;HTTP/HTTPS共用缓存),网宿还提供自定义缓存Key功能,可以根据URL请求头或者请求头中的部分值计算缓存key,相同URL,请求头的值不一样,则缓存多份。
此配置项请谨慎使用,如配置不当会导致缓存文件增多,命中率降低。

操作步骤

  1. 登录网宿CDN控制台,选择域名所在的产品线。

  2. 选择域名,单击操作列中的元宇宙:我们的技术准备好了吗?

  3. 在自助配置界面选择缓存优化-自定义缓存key,单击添加

  4. 配置生效范围:具体类型。此处提供3种生效范围供选择:
    元宇宙:我们的技术准备好了吗?
    1) 指定常用类型: 全部文件、首页
      - 全部文件: 表示该域名的所有请求资源在CDN节点都遵循相同的缓存规则。
      - 首页: 表示仅针对http://domain/或https://domain/这种根目录格式的请求,都会遵循相同的缓存规则。
    2) 指定文件类型。 网宿提供常用的文件类型供选择,也可以自行输入文件类型。匹配该文件类型的请求资源在CDN节点后遵循相同的缓存规则。
    3) 指定URL。可以设定仅部分URL的请求资源在CDN节点都遵循相同的缓存规则。
    4) 指定目录。可以设定仅部分目录下的请求,请求资源在CDN节点都遵循相同的缓存规则。

  5. 配置缓存Key的HTTP头
    元宇宙:我们的技术准备好了吗?
    1) 此配置项用于配置请求头中哪些头部要参与缓存。 例如:配置cookie, 表示cookie值不同则缓存多份。

    2) 每条缓存Key规则中头部只能配一个,若客户需要多个HTTP头参与缓存Key计算则可以配置多条缓存Key规则。详见场景三。

  6. 配置缓存Key的参数(头部值中带等号的情况下可按需配配置)
    元宇宙:我们的技术准备好了吗?
    1) 例如,请求头为:cookie: userLanguage=es; eid=mx_1674690364390601; device_view=full,此处配置为userLanguage,表示根据cookie头部的userLanguage的值生成缓存key, 只有userLanguage的值不同时才会缓存多份。

    2) 可以同时配多个,用英文分号分隔。

    3) 默认为空,表示该头部的值只要有差异就会缓存多份。

  7. 配置完毕,单击确认,然后单击下一步

  8. 为了避免影响线上业务,建议先预部署测试效果,单击预部署

  9. 预部署成功后,可以获取到对应的测试节点,可以host节点进行测试。
    元宇宙:我们的技术准备好了吗?

  10. Host测试后,确保配置无误,则单击直接部署,预计需要3-5分钟的部署时间。

注意事项

  1. 此功能请谨慎使用,如配置不当会导致缓存文件增多,命中率降低。
  2. 通过此功能定制缓存后,则无法使用URL推送刷新缓存,需要使用目录推送。

配置示例

场景一:只配置一个HTTP头,并且不填写头部参数
元宇宙:我们的技术准备好了吗?
如上配置表示该Cookie头部的值只要有差异就会缓存多份
注意:实际上Cookie头部的值差异很大,如果用这种配置方式,极有可能导致命中率降低,回源量增多。 Cookie的配置建议参考场景二。

场景二:配置一个HTTP头,并且填写头部参数
元宇宙:我们的技术准备好了吗?
如上示例表示只有Cookie头部中的userLanguage参与缓存。 如cookie: userLanguage=es; eid=mx_1674690364390601; device_view=full,则根据cookie头部的userLanguage的值生成缓存key, 只有userLanguage的值不同时才会缓存多份。

场景三:配置两个HTTP头。
若需要有两个头部共同控制缓存key,则可以配置两条缓存key规则。如下示例,只要Cookie或X-cache的值不同,则缓存多份。
元宇宙:我们的技术准备好了吗?