cdn缓存(cdn缓存过期概念)
本文目录:
- 1、<"http://#%E9%98%BF%E9%87%8C%E4%BA%91cdn%E9%87%87%E7%94%A8%E5%87%A0%E7%BA%A7%E7%BC%93%E5%AD%98%E5%AE%9E%E7%8E%B0" title="阿里云cdn采用几级缓存实现" "">阿里云cdn采用几级缓存实现
- 2、<"http://#%E8%85%BE%E8%AE%AF%E4%BA%91cdn%E7%BC%93%E5%AD%98github" title="腾讯云cdn缓存github" "">腾讯云cdn缓存github
- 3、<"http://#CDN%20%7C%20CDN%E7%BC%93%E5%AD%98%E8%A7%84%E5%88%99%E5%8F%8A%E4%BC%98%E5%85%88%E7%BA%A7" title="CDN | CDN缓存规则及优先级" "">CDN | CDN缓存规则及优先级
阿里云cdn采用几级缓存实现
阿里云cdn采用二级缓存实现。
阿里云CDN主要由智能调度系统和Cache软件两个重要的环节构成,Cache系统结构可由一级和二级cache节点构成,所以阿里云cdn采用二级缓存实现。
阿里云计算有限公司是一家云计算及人工智能科技公司,创立于2009年,致力于以在线公共服务的方式。
腾讯云cdn缓存github
登录
首页
学习
实践
活动
专区
工具
TVP
返回腾讯云官网
hahah
32 篇文章
关注
hexo-优化-网站访问加速
2022-06-15 19:46:29阅读 4820
hexo-优化-网站访问加速
加速hexo项目访问速度,可采用CDN加速的方式进行,亦或是参考采用多线部署+域名映射的方式进行构建。针对图片资源问题,可借助图床服务构建图片资源存储。
网站访问加速方案
1静态资源CDN缓存:基于github+jsDelivr构建
2图片资源存储:可借助腾讯云COS或者其他对象存储构建资源存储
复制
1.CDN引入
jsDelivr是一个免费、快速和可信赖的全球CDN加速服务,可基于多种组合方式构建cdn加速,常见的白嫖方案有github/又拍云/等+jsDelivr的组合方式
Github+jsDelivr实现cdn加速
构建说明
1新建github仓库用于存储资源数据信息(自定义数据存储)
2发布资源版本信息
3通过jsDelivr引用资源信息
4jsDelivr缓存更新
构建过程参考
1github仓库构建
初始化github仓库,上传资源文件信息(自定义分类存储),一般将经常访问的静态资源文件上传即可(注意资源访问路径问题,可以将themes下的资源文件整个打包)
2资源版本发布
仓库构建完成并上传资源,完成后发布资源版本
填充发布版本信息,发布版本内容
3资源引用信息
通过地址引用资源内容
# 引用路径规则
用户名/你github仓库名@发布的版本号/文件路径
复制
例如访问指定路径下的发布的图片信息
仓库初始化完成,但在访问过程出现:Failed to fetch version info for 用户名/仓库名 提示,此外针对一些没有经常更新的仓库也会出现这种情况,多传几次文件、更新发布版本再次尝试即可
hexo项目引用
如果需要在hexo项目中引用自定义的CDN服务,则可通过配置主题配置文件_config,butterfly.yml中的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缓存】内容来源于网络,若引用不当、侵权,请联系我们修正或者删除!
版权声明
本文仅代表作者观点,不代表米安网络立场。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。