开发者社区> 问答> 正文

阿里云CDN为什么无法命中缓存?原因有哪些?

阿里云CDN为什么无法命中缓存?原因有哪些?

展开
收起
Lee_tianbai 2021-01-05 13:39:55 1326 0
2 条回答
写回答
取消 提交回答
  • 云服务器爱好者,服务器建站,WordPress网站搭建和安装调试~

    可能是cdn缓存规则设置不合理,或者是服务器缓存规则。还有资源冷门,网站访问量低,缓存命中率也会慢慢下降的。参考CDN帮助文档https://help.aliyun.com/product/64812.html

    2021-01-05 14:21:08
    赞同 展开评论 打赏
  • (1)客户端请求是动态请求 如果请求是动态请求,则无法命中 CDN 缓存。当客户端访问这些动态内容时, 每次都需要访问用户的服务器,由服务器动态生成实时的数据并返回给客户端。 (2)源站返回强制不缓存的 HTTP 头 当源站配置了以下响应头时,即使配置了缓存规则,CDN 也不会对该资源进行 缓存,因为这些响应头在 CDN 缓存规则中的优先级较高。 ● 1: 有 s-maxage=0、max-age=0、no-cache、no-store、private 中 的 任一种。 ● 2:有 s-maxage 或 s-maxage=0。 ● 3:有 Pragma: no-cache。 如下图,源站响应了 no-cache 和 private 导致 CDN 无法缓存,X-Cache 字 段为 MISS,X-Swift-CacheTime 为 0。这种情况需要源站去掉这个 HTTP 响应 头,具体可以参见 Nginx 缓存策略设置Apache 缓存策略的设置IIS 缓存策略的 设置方法image.png (3)未返回响应头 Etag 和 Last-modified 当 CDN 未配置缓存规则时,如果静态文件未返回响应头 Etag 和 Last-modified,则该静态文件不能缓存在 CDN 节点上。解决方案就是源站配置返回 Etag 和 Last-modified 或者直接在 CDN 上配置缓存规则。 (4)全站加速未配置静态加速 全站加速默认走了动态加速,动态加速是每次回源的。如果需要走缓存的话,需 要配置静态加速。目前配置静态加速支持按照文件类型、URI 以及路径方式配置。如 果全站加速没有配置静态加速的情况,则都是走动态加速的,全站加速节点响应的HTTP 头没有 X-Cache、X-Swift-CacheTime 等字段的,类似如下图。 image.png

    2021-01-05 14:21:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云产品十一月刊来啦! 立即下载
阿里云产品安全基线白皮书 立即下载
云原生产业大会:阿里云精彩内容集锦 立即下载