当前位置:首页 » 文件管理 » cdn缓存设置

cdn缓存设置

发布时间: 2023-01-25 11:26:47

❶ 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是不缓存的。

❷ 通过HTTP Header控制缓存

我们经常通过缓存技术来加快网站的访问速度,从而提升用户体验。HTTP协议中也规定了一些和缓存相关的Header,来允许浏览器或共享高速缓存缓存资源。这些Header包括:

Last-Modified 和 If-Modified-Since

ETag 和 If-None-Match

Expires

Cache-Control

以上Header又可以分成两种类型:

协商缓存:浏览器发送验证到服务器,由服务器决定是否从缓存中读取,如 1 和 2 。

强缓存:浏览器验证缓存的有效性,然后决定是否从缓存中读取数据,如 3 和 4 。

本文将会分别介绍这四种配置的作用以及可能产生的影响。

1、Last-Modified 和 If-Modified-Since

Last-Modified:服务器在响应请求时,告知浏览器资源的最后修改时间。

If-Modified-Since:浏览器再次发送请求时,会通过此Header通知服务器在上次请求时所得到的资源最后修改时间。服务器会将If-Modified-Since与被请求资源的最后修改时间进行比对。若资源的最后修改时间晚于If-Modified-Since,表示资源已被改动,则响最新的资源,返回200状态码;若资源的最后修改时间早于或等于If-Modified-Since,表示浏览器端的资源已经是最新版本,响应304状态码,通知浏览器继续使用缓存中的资源。

2、ETag 和 If-None-Match

ETag:服务器分配给资源的唯一标识符,资源被修改后,ETag也会随之发生变化。

If-None-Match:浏览器再次发送请求时,会通过此Header通知服务器已缓存资源的ETag。服务器会将If-None-Match与被请求资源的最新ETag进行比对。若不相同,表示资源已被改动,则响应最新的资源,返回200状态码;若值相同,则直接响应304状态码,通知浏览器继续使用缓存中的资源。

3、Expires

服务器可以通过此Header向浏览器传递一个具体的时间(格林威治格式,例如:Thu, 19 Jul 2018 07:43:05 GMT) ,来明确地宣告资源的有效期。在资源过期之前,浏览器不再发送请求,而是直接从缓存中读取数据。只有当资源过期之后,浏览器才会再次向服务器请求该资源。

4、Cache-Control

服务器使用此Header来向客户端建议缓存策略,它有一下几个可选值:

max-age=秒:告知浏览器缓存的有效时长,在该时间内浏览器将直接从缓存中读取数据。

s-maxage=秒:作用同max-age,但是只对共享高速缓存(如CDN)有效,对浏览器无效。

no-cache:告知浏览器不要直接使用缓存,而是必须向服务器发送请求。

no-store:告知浏览器不要缓存本次请求和响应的任何信息。

public:宣告任何缓存媒介都可以缓存该响应。

private:宣告该响应只允许个体客户端(如浏览器)去缓存,而不允许共享高速缓存(如CDN)去缓存。

在上面的介绍中我们了解到浏览器会根据max-age设置的时间进行缓存。而通过研究发现CDN也会识别源站响应头中Cache-Control属性,根据max-age设置的时间进行缓存,但是,如果源站同时设置了s-maxage和max-age,那么CDN会优先采用s-maxage。

下面通过图例来展示一下这些可选值的效果。

首先了解一下浏览器是怎样根据max-age进行缓存的:

从上图不难发现,服务器在Header中返回了Cache-Control: max-age=100后,浏览器成功缓存100秒,该时间段内的请求都从直接以本地缓存来响应。

那么,服务器在Header中返回Cache-Control:s-maxage=100时,又会对浏览器产生什么样的影响呢?

如上图所示,浏览器没有采取任何缓存策略,这是因为s-maxage面向的是共享高速缓。

上面这两个例子很容易理解,在现实世界中,为了加快网站响应速度,我们可能会在浏览器和服务器之间引入CDN服务。浏览器的请求会先到达CDN,然后CDN判断是从缓存中读取数据还是回源到服务器。接下来,让我们看看max-age和s-maxage会对CDN的缓存策略带来哪些影响。

可以看出CDN也会利用max-age来缓存,所以在100秒内强制刷新浏览器时,CDN会直接用缓存来响应。

如果服务器使用了s-maxage又会如何呢?

不难发现CDN对max-age和s-maxage采取了同样的缓存策略,但浏览器并不会根据s-maxage来进行缓存。

CDN供应商的特殊规则

我们分别测试了阿里云和腾讯云的CDN对Cache-Control的支持情况,发现他们都有一些独特的规则。阿里云CDN可以在控制台里设置Cache-Control,该设置会覆盖源服务器的Cache-Control。

腾讯云CDN虽然没有再控制台提供覆盖Cache-Control的功能,但其规则却一点也不简单,在使用的时候一定要特别注意:

服务器和CDN均不对缓存进行配置时,CDN会采用默认的缓存机制(静态文件缓存30天,动态请求不缓存);

CDN配置缓存机制(但并未开启高级缓存配置)且服务器设置Cache-Control: s-maxage=200,max-age=100时,CDN会按照其控制台设置的规则进行缓存,浏览器则按照max-age进行缓存;

服务器不设置Cache-Control时,CDN会自动在响应的Header中添加Cache-Control: max-age=600,这就会让浏览器将该资源缓存600秒;

服务器设置为禁用缓存时,CDN和浏览器均不进行缓存;

服务器设置Cache-Control: s-maxage=200,max-age=100并开启CDN的高级缓存配置时,CDN会从s-maxage和控制台中设置的缓存时间中选择最小值来作为缓存时间,而浏览器则始终使用max-age;

服务器设置Cache-Control:max-age=100并开启CDN的高级缓存配置时,CDN会从max-age和控制台中设置的缓存时间中选择最小值来作为缓存时间,不影响浏览器的缓存策略。

组合使用

如果同时设置了这些Header,浏览器和高速共享缓存会按照下面的优先级进行缓存:

Cache-Control > Expires > ETag > Last-Modified

也就是说,Cache-Control不仅是强缓存,而且拥有最高的优先级,我们可以为不经常发生变化的资源应用该Header来提升响应时间。

在Ada中使用缓存

Ada提供了UI脚手架和API脚手架,这两类脚手架的服务器端入口文件分别为index.server.js和index.js,我们只需要在入口文件的请求处理函数中为响应添加适当的Header,即可通知客户端进行响应的缓存,比如:

// 设置CDN缓存300秒,浏览器缓存200秒 ctx.response.headers.set('Cache-Control',public,s-maxage=300,max-age=200)

在为请求添加缓存Header之前,应该先为其制定适当的缓存策略,需要考虑该URL是否适合缓存(数据是否特定于用户)以及需要缓存的时长等等。

总结

通过使用这些HTTP Header,我们可以主动影响浏览器甚至CDN的缓存策略,从而减少请求数量,提升网页性能,减轻服务器压力。

Ada的灵活机制能让我们为不同的URL设置不同的缓存策略,能够更有针对性地进行主动缓存。

❸ 如何配置百度云加速CDN缓存提高网站访问速度

配置网络云加速CDN缓存提高网站访问速度

  • 今天在登陆网络推广后台后,发现优化建议里面有一条提示,网站打开速度慢,达到7秒。想一下有多少网民愿意等待7秒呢,没耐心的都直接关闭你的网站。这个流失率不小啊。于是我就按照提示用网络的那个网站速度诊断工具,测试一下,网通和电信都显示得分56:

  • 然后我就想到了使用网络云加速来提高一下网站的打开相应速度,因为以前在群里看到有人提到过这个东西,说是可以能提高网站的加载速度。而且还不止这些好处呢!下面我就以自己实际操作的步骤来给大家看看,一个网站如何加入网络云加速。

  • 1.需要登录你的账号

  • 这里有两种登录方式,一个是用的网络账号;另外一个就是使用网络推广账号,我这里就使用的网络推广账号进行登录了。

  • 进入我的网站进行相关设置

  • 进入网站,然后添加网站。这里也有两种接入方式:NS/CNAME方式,我自己使用的是NS验证的方式,因为感觉这个方便点,能使用网络各机房节点的DNS高智能服务,同时也是网络推荐使用的接入方式。

  • 然后进入下一步,配置子域名;这里默认的有一个MX记录,还有一个A记录;在这里需要检查的是指向IP地址是否是你空间上的那个IP,接下来增加一个@记录A指向的,这样无论是带三个W的还是顶级域名都会指向同一个页面地址,方便搜索引擎统一认识啊!

  • 其次,配置服务商设置。在这里需要去你的空间管理那边,把原先的那个DNS地址修改一下,改为网络的ns1.bddns.cn和ns2.bddns.cn;这两个缺一不可的。在这里我就演示一下新网的修改方法,登陆新网管理那边,修改域名DNS地址,然后确定就修改成功了。修改成以后,回到网络云刚才那个页面,检验修改就大功告成了,是不是挺容易的呢?具体的可以看一下下面的图;

  • 设置好以后也可以看网站数据,看什么节点啊,这些之类的。接入网络云之后,还真发现网站打开速度快了。

  • 如果你发现你的网站打开速度慢,想让它变快点的话,那不妨来使用网络云加速试试吧!

❹ 天翼云cdn缓存设置规则执行顺序

天翼云cdn缓存设置规则执行顺序在解决方法是联系天宇的公司的人工客服告诉他们,你想要执行的缓存设置规则,然后告诉他们具体的执行程序,让他们帮你进行缓存的切换模式就可以了

❺ 如何配置百度云加速cdn缓存提高网站访问速度

给你需要缓存的资源做自定义规则全部缓存即可。进入云加速报表下拉的规则自定义-添加URL缓存规则,比如我要缓存ZIP压缩包,如下添加

网络云加速支持通配符格式,比如我要缓存全站内的所有zip格式的压缩包,那么添加www.zhujib.com/*.zip的所有都缓存规则,记住缓存粒度一定要选所有都缓存,否则是不会缓存资源的。

对于动态网站如果你不需要会员登陆这些功能的,也可以添加一个全站缓存比如www.zhujib.com/*,这样别人不管访问你哪个页面网络云加速都会给你网站缓存,可以大大减少服务器访问压力。当然我们要看网站实际情况来弄,如果你网站是一个论坛,那就不适合做全站缓存了,只要设置做纯静态资源的目录缓存即可。

❻ cfcdn缓存设置

不能。cfcdn缓存由于是只能进行储存的,因此是并不能进行设置的。缓存是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器。

❼ 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加速器_一款简单好

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

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

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

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

既然都设置了30天的缓存时间,那理所应当是30天之后才会再次到源站服务器获取资源。
其实这种说法不完全正确,30天是理想最大的过期时间,不出现意外的情况下,资源在CDN服务器上是可以缓存30天的。
但是意外总是有的,比如CDN服务器坏了,里面的数据都丢了。后面CDN服务器搞好重新上线时,里面什么缓存都没有的,那你再次请求到CDN服务器是不是就会回源?

还有以下情况。

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

那怎么才能避免出现上面的问题?
CDN服务器坏掉的问题,这个没啥好的办法;其他三个问题,主要解决办法是提升网站的请求量,但也不能彻底解决只能起到缓解而已。
网站每天必须有一定的请求量和流量,让资源保持热度,不然资源就有可能被淘汰掉。

❾ 设置cdn只缓存302

错误。CDN缓存302带来的问题而其他不同终端设备的用户,通过该url进行访问的时候就会出现访问到的页面情况,仍然是第一个用户缓存的302的请求到的页面上。

❿ 如何配置百度云加速CDN缓存提高网站访问速度

如果是牛盾云加速,一般来说默认的缓存设计即可,因为是最常用和最省事的,具体可以根据问题微调。 如果是传统cdn,您可以联系官网7x24的客服电话详细咨询呢。

热点内容
电脑租服务器一天多少 发布:2024-05-20 19:23:15 浏览:775
c语言程序三种基本结构 发布:2024-05-20 19:18:06 浏览:799
小蚁运动相机存储卡 发布:2024-05-20 19:17:31 浏览:82
红米4怎么关闭密码锁屏密码 发布:2024-05-20 18:55:00 浏览:767
买手机看哪些参数配置图片 发布:2024-05-20 18:35:02 浏览:8
右键文件夹未响应 发布:2024-05-20 18:34:23 浏览:987
汽车安卓软件在哪里下载 发布:2024-05-20 18:33:38 浏览:887
编程智能积木 发布:2024-05-20 18:26:03 浏览:161
命星速算法 发布:2024-05-20 18:26:02 浏览:943
python的u 发布:2024-05-20 18:24:25 浏览:134