当前位置:首页 > ZBLOG > 正文

关于zblog阿里云缓存规则的信息

本篇文章给大家谈谈zblog阿里云缓存规则,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

阿里云cdn不缓存目录怎么设置

需要禁止被缓存,在你服务器上给目录设置一下cache-control就可以了。我用的服务器是小鸟云的,这些都是他们告诉我的。

Z-Blog,阿里云虚拟主机 备份

老版本的Zblog博客啊,那是asp语言的,没数据库,直接根目录整站文件就备份好了

但是你没法用linux系统恢复,也没法用PHP的

asp只能用windows系统

通过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设置

服务器 阿里云 云服务器ECS Centos7.4

域名 阿里云的域名

SSL协议 certbot生成的SSL协议

阿里云官方CDN 学习路径

1.为什么使用CDN?

阿里云内容分发网络 CDN 将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。

从这个节点获取资源,使得访问更加流畅,降低真实服务器的负载。

对于家大业大的服务器拥有者可以通过增加带宽达到相同的效果。

登录阿里云账号,在阿里云 控制台页面 下面产品选择CDN,或者左上角侧导航点击打开,再下来选项中选择CDN

1.开通方式有两种,一种流量方式,一种带宽方式

使用流量,通过购买流量包,在访问缓存在节点资源时候,会消耗流量,直到流量用完。

使用带宽,包年服务

2.选择某一种方式,勾选同意CDN协议,即可开通成功

1.如果走流量,进入CDN控制台,购买流量包

配置如下

2.创建加速域名(域名管理-添加域名)目的获取 CNAME

3.解析域名

针对阿里云域名,依照 步骤

值得注意的主机记录与记录类型搭配的组合 不能与列表中的其他项目冲突

在这一切都完成后,通过WIN+R 输入cmd打开终端,通过 ping 加速域名 来查看是否成功开启CDN

如果出现

如果回显信息包括 . kunlun*.com,则表示CNAME配置已经生效,域名加速也已生效。

访问下自己加速域名下的资源看一看,是否出现了问题?

出现的问题:

1.如果 CDN管理 中的HTTPS显示未开启,而自己确开通了HTTPS(配置了SSL),那么通过HTTPS访问网站资源会报错,说是无法加密解密,我出现这个问题,是因为我使用的certbot配置的SSL,由于挂载得项目需要python2.7等问题,虽然配置SSL成功,但是有一个警告

NGINX configured with OpenSSL alternatives is not officiallysupported by Certbot.

所以出现这个问题后,我不知道是不是因为SSL本身配置的问题

查看 域名管理列表 - 点击加速域名右侧的 管理 ,选择HTTPS配置 强制跳转

配置了 https - http

最终问题得到了解决,资源可以访问到了

2. 配置CDN且预热资源成功,但是总是无法命中,回源怎么办?

进入CDN控制台 -》 域名管理 -》管理 -》缓存配置 -》 添加

地址添加需要缓存的文件后缀,多个以“,”号分隔;添加过期时间和权重,其中权重 1-99 ,权重越高,执行规则越优先

添加完一个后,可以继续点击添加,添加另一个规则。

以我的为例,我需要对视频进行CDN节点加速,则

1. 关闭CDN服务 , 选择列表内的操作域名 最右侧三个点,点开有 停止 与 删除 ,可供操作

2.CDN提供资源的刷新和预热功能。

通过刷新功能,您可以强制CDN节点回源并获取最新文件;

通过预热功能您可以在业务高峰前预热热门资源,提高资源访问效率。

通过本文您可以了解刷新和预热功能的配置方法,也可以查询其操作记录。

刷新操作,将最新内容强制推送至CDN节点 - 进入 CDN控制台 -》 点击 刷新预热 -》 选择操作方式 -》 添加对应内容

如:

刷新

淘汰旧文件,重新获取文件的新版本

当文件有跟新时,需要手动执行刷新操作,将CDN中缓存的历史版本设置为超时,并从源站获取最新的版本。

刷新操作相对于一个触发更新的动作。

如果不刷会有啥问题呢?

用户在访问URL时,命中的是CDN中的旧数据,因此需要“缓存刷新”。

预热

首次发布的文件,主动从源站推送到CDN,让用户访问到CDN时不用回源命中

预热时间

资源预热完成时间将取决于用户提交预热文件的数量、文件大小、源站带宽情况、网络状况等诸多因素。

手动访问加速域名,只是推送数据到离你最近的节点,而不是所有的节点,所以阿里云CDN还是需要预热或刷新同步资源。

阿里云webdav目标缓存大小

传输文件超过大约50MB的文件会弹出。

阿里云盘的webdav协议,只需要简单的配置一下,就可以让阿里云盘变身为webdav协议的文件服务器。

阿里云装了zblog,然后用了zblog上面的免费模板,上面的免费模板会有一天消失吗?比如提供模板这个人

不会的 免费模板只要下载下来,就是下载到你本地了。我这里有一些阿里云的活动 你可以看一下 网页链接

zblog阿里云缓存规则的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、zblog阿里云缓存规则的信息别忘了在本站进行查找喔。

取消
扫码支持 支付码