开发者社区> 问答> 正文

关于CDN缓存的问题。

我这边是一个社交站点。每次用户上传都需要更新一下CDN? 肯定不可以的,我想到到   /http://xxxx/a.png?123  。 图片是得到最新的,但是貌似CDN没有缓存的样子。 问题:是不能支持这个种方式?还是缓存时间未到?

展开
收起
易汇众盟 2014-12-20 12:41:10 7614 0
2 条回答
写回答
取消 提交回答
  • Re关于CDN缓存的问题。
    cdn是跟url有关的,只有url完全相同才认为是同一份内容,区分大小写。所以 a.png 跟 a.png?123 以及 a.png?1234 是三个不同的内容。之所以cdn没缓存,是因为你的a.png后面产生的随机码每次都不一样所致,这样每次调用,cdn都认为是新内容需要回源,所以没有缓存住。你的这种情况,建议单独建立一个字段,能在用户上传之后自动改变一下这个值,比如 timestamp字段,这样确保没有更新行为的时候调用的资源地址是固定的,一旦更新就会重新获取新内容。


    一般地,cdn适合静态内容,就是说 a.png 自他产生的那一天起就不会再发生变化,就算要变化也应该是频率相当低的,并且容忍缓存造成的误差的。如果是频繁变化的动态内容,你就可能需要设置很短的缓存周期,这样对你自己来说既有cdn流量,又有庞大的回源流量,得不偿失了。如果是纯静态内容,一般命中率都在90%以上,意味着如果你的cdn上有10M的带宽,回源的ecs主机只需要1M的带宽即可。你可以按我上面说的那样,简单的把动态的内容变相成静态内容。
    2014-12-23 14:59:57
    赞同 展开评论 打赏
  • 估计时间没到
    2014-12-22 14:20:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
CDN排坑指南 立即下载
《CDN排坑指南》 立即下载
直播CDN-X - 白山直播CDN流传递链路优化 立即下载