可能是cdn缓存规则设置不合理,或者是服务器缓存规则。还有资源冷门,网站访问量低,缓存命中率也会慢慢下降的。参考CDN帮助文档https://help.aliyun.com/product/64812.html
(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 缓存策略的 设置方法。 (3)未返回响应头 Etag 和 Last-modified 当 CDN 未配置缓存规则时,如果静态文件未返回响应头 Etag 和 Last-modified,则该静态文件不能缓存在 CDN 节点上。解决方案就是源站配置返回 Etag 和 Last-modified 或者直接在 CDN 上配置缓存规则。 (4)全站加速未配置静态加速 全站加速默认走了动态加速,动态加速是每次回源的。如果需要走缓存的话,需 要配置静态加速。目前配置静态加速支持按照文件类型、URI 以及路径方式配置。如 果全站加速没有配置静态加速的情况,则都是走动态加速的,全站加速节点响应的HTTP 头没有 X-Cache、X-Swift-CacheTime 等字段的,类似如下图。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。