CDN | 明明设置了30天缓存时间,为啥还没到30天就回源了?

CDN | 明明设置了30天缓存时间,为啥还没到30天就回源了?,第1张

突然朋友问了我个这样的问题:明明设置了30天缓存时间,为啥还没到30天就回源了?

相信很多朋友也有这种问题,首先回忆一下CDN的请求流程:

首次请求因为未命中缓存所以要到源站服务器获取资源,等CDN服务器将资源缓存在本地后,后续客户端再来请求就由CDN服务器直接给客户端了,不用再去源站。

既然都设置了30天的缓存时间,那理所应当是30天之后才会再次到源站服务器获取资源。

其实这种说法不完全正确,30天是理想最大的过期时间,不出现意外的情况下,资源在CDN服务器上是可以缓存30天的。

但是意外总是有的,比如CDN服务器坏了,里面的数据都丢了。后面CDN服务器搞好重新上线时,里面什么缓存都没有的,那你再次请求到CDN服务器是不是就会回源?

还有以下情况。

除了以上的原因还有其他的,不一一举例了。

那怎么才能避免出现上面的问题?

CDN服务器坏掉的问题,这个没啥好的办法;其他三个问题,主要解决办法是提升网站的请求量,但也不能彻底解决只能起到缓解而已。

网站每天必须有一定的请求量和流量,让资源保持热度,不然资源就有可能被淘汰掉。

一条缓存规则,该规则表示html后缀的文件会缓存5分钟。

不管访问多少次,X-Cache 始终是 MISS,X-Swift-CacheTime 也一直为 0。

X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。

X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。

X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。

试下能否正常被CDN缓存。

X-Cache 变成了 HIT,X-Swift-CacheTime 变成了 300,也就是CDN缓存5分钟。

缓存规则权重不同,有两条缓存规则,其中 /static/ 目录类型的权重最大,意味着优先级最高。

请求 /static/ 目录下 html 后缀的文件,看下匹配到哪条规则?

X-Swift-CacheTime: 120,这是匹配到了 /static/ 目录类型的规则。

缓存规则权重相同, html 文件后缀名的规则创建时间最早,正常情况应该是匹配到该条规则。

X-Swift-CacheTime: 300,确实匹配到了 html 文件后缀名规则。

CDN不要设置缓存规则,然后nginx配置内容如下,Cache-Control设置为60秒,Expires设置为120秒。

源站响应头部有 Cache-Control 、 Expires 、 Last-Modified 、 ETag ,测试看看哪个优先级最高。

X-Swift-CacheTime: 60,Cache-Control 的优先级高一些。

在nginx配置中将 add_header Cache-Control "max-age=60" 去掉再试试。

X-Swift-CacheTime: 120,缓存规则是用 Expires 的时间了。

去掉nginx配置中的 expires 120s。

X-Swift-CacheTime 会随着时间变化,这是因为缓存过期了,CDN重新去源站拉取,然后重新计算缓存过期时间。

ok,最后一步,将 Last-Modified 响应头部给干掉。

只有 Etag 响应头部,不管访问几次,依旧是 X-Swift-CacheTime: 10。

将4个响应头部都干掉,看下CDN是否会缓存。

多次测试始终是 X-Cache: MISS 和 X-Swift-CacheTime: 0,这说明如果这4个响应头部都没了,CDN是不缓存的。

cdn加速器的缓存一般设置多长时间

写回答有奖励 共3个回答

2016-04-21 TA获得超过959个赞

关注

这个主要是看所缓存内容的更新频率。。。

通常来说 像图片、js、css等这些内容一般是很少变动的,那么缓存时间可以设置长一点,1天 或者更长。假如有变动的时候可以手动提交一下刷新。

而变动比较频繁的内容 缓存时间可以设置短一点。

1 9

高能答主

今天 14:38 最想被夸「你懂的真多」

关注

在传统的动态系统的访问中,用户对网络的请求过程,一般需要经过网络中多台路由器的传输,最终将发送的请求交于动态系统来处理,但是由于IP网络本身的“尽力而为的原则”、网络链路中复杂的环境及硬件的不可靠性的确实存在,致使用户要出现重复发送的请求的现状,所以最终导致用户的请求在提交的过程中出现等待、数据加载时间过长的一些现象的普遍存在,这些在线提交式系统的缓慢直接地影响到办公人员的工作效率,这也是制约着很多大型企业在协同办公OA、ERP、SAP等信息化建设中,出现最多的问题。

而CDN分发解决方案解决了与静态网站相关的性能和可靠性问题,而在当今在线业务体验中,与分发静态和动态元素和应用相关的独特挑战,则由速网的动态网站加速来解决。

CDN能几乎涵盖国内所有线路。而在可靠性上, CDN 在结构上实现了多点的冗余,即使某一个节点由于意外发生故障,对网站的访问能够被自动导向其他的健康节点进行响应。CDN能轻松实现网站的全国铺设,不必考虑服务器的投入与托管、不必考虑新增带宽的成本、不必考虑多台服务器的镜像同步、不必考虑更多的管理维护技术人员。

展开剩余40%

0 抢首赞

匿名用户

2020-11-09

cdn加速服务_Hi,移动云_11.11,一起上云吧!新用户上云2折起, 专属云多买多送!云网一体/贴身服务/随心定制/安全可控!点击了解更多活动信息。 点击进入详情页

广告

今天 13:26 TA获得超过1593个赞

关注

这个主要是看所缓存内容的更新频率。。。

通常来说 像图片、js、css等这些内容一般是很少变动的,那么缓存时间可以设置长一点,1天 或者更长。假如有变动的时候可以手动提交一下刷新。

而变动比较频繁的内容 缓存时间可以设置短一点。

0 抢首赞

天下数据cdn加速无需备案无需备案 私人订制 全球节点任选

天下数据cdn加速无需备案海外节点任意定制,全线加速,一键隐藏真实IP,数据安全有保..

深圳市朗玥科技有限公司广告

香港cdn-华为云CDN加速_11.11上云嘉年华_折后买一送一

值得一看的香港相关信息推荐

华为云全球2500+节点覆盖,调度精准率高达99.99%,更低时延_更低回源。华为云11.11上..

华为技术有限公司广告

Tap加速器_一款简单好


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/435990.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-28
下一篇2023-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存