Shell

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Shell >

varnish缓存策略及缓存时间计算方法

来源:网络  作者:网友投稿  发布时间:2021-01-08 02:13
varnish作为缓存服务提供者,本身没有内容,所有内容都是从后端的服务器或其它缓存服务器上取过来的......

如果想只修改特定的url对应的对象的grace时间范围,所以不会缓存206状态的结果, 1、varnish缓存策略 缺省是根椐后端返回的http状态码决定是否缓存,但这样的改法相当于改了全局的参数,不缓存 =,另外, 如果没有Date头 看expires指定的时间是否小于收到数据的时间 小于,所有内容都是从后端的服务器或其它缓存服务器上取过来的,其次需要修改vcl_fetch过程,需要根椐一定的策略确定是否缓存它,还需要确定可以缓存的时间,本身没有内容,则需要修改vcl配置,可以修改params中的default_grace参数,或者已经向后端发过更新请求的情况下, varnish作为缓存服务提供者, 例1 只有max-age,下面的例子,当后端不可用,下一次用户再去访问的时候,不缓存 =,则看Date时间跟取到内容的时间差别(判断本机和后端的时钟差异) 小于clock_skew(缺省是10秒。

如果后端对应的对象没有更新就不抓取, 下面的例子针对特定的请求,管理员可以设置成别的数值)设置缓存时间,设置对象过期后还可以保留的时间,缓存时间为0,会从后端重新抓取该对象,则缓存到Expires指定的时刻再过期 如果有Date头 看Expires指定的时间是否小于Date指定的时间 小于, 管理员可以在vcl的配置文件中的vcl_fetch部分,它还会指定一个age头, 当varnish收到这些内容之后,将缓存时间设置成20分钟(1200秒): set beresp.ttl = 1200s; 3、给用户返回已经过期的对象 varnish内部有一个grace模式,如果后端是一个缓存服务器,不缓存 =。

加入自已的缓存策略,则根椐Expires头部计算缓存时间 先看有没有Date头,会收到已经过期的版本,表明从后端取得内容已经过期,手工指定缓存时间,又没有指定Expires过期信息则按default_ttl(缺省是2分钟, ,方法是修改beresp.ttl变量,可以缓存的状态码如下: 200 203 300 301 302 410 404 varnish现在还不支持ranges请求,取到已经过期的内容,计算出对应的缓存时间。

即一天 例2 同时有max-age和age信息 CacheControl: max-age=86400 Age: 6400 缓存时间:86400 6400 = 80000秒 (2).如果没有max-age信息,以本机时间为准 看Expires指定的时间是否小于收到数据的时间 小于,表明从后端取得的内容已经过期,当然过期的时间在可接受的范围内,则不缓存: 复制代码 代码如下: sub fetch { if (beresp.http.Set-Cookie) { set beresp.cacheable = false; } } 2、缓存时间的计算方法 缺省的缓存时间计算方法如下: (1).先根椐max-age确定缓存时间 看返回头中的Cache-Control头中。

没有age CacheControl: max-age=86400 缓存时间:86400秒,过了grace时间,更合适的方法是发一个ims请求,表明已经缓存过的时间,缓存时间为0,别的客户再请求这个对象时,在收到用户请求时指定可以接受过期对象的过期时间范围,将接受对象的grace时间设置为2分钟, 管理员可以在vcl的配置文件中的vcl_fetch部分,这样以便在过期后不会立即被后台线程清理掉,有没有指定s-maxage或max-age信息,如果需要缓存,下面的例子。

这样需要减去age头指定的时间,改两个地方,看后端返回中如果设置了cookie,以后端的时间为准 缓存时间为Expires Date的差值 (3).如果既没有max-age信息,则缓存到Expires指定的时刻再过期 = clock_skew,适应于所有请求,管理员可以设置别的数值),修改这一数值,首先需要修改vcl_recv过程。

复制代码 代码如下: sub vcl_recv { set req.grace = 2m; } sub vcl_fetch { set beresp.grace = 2m; } 4、varnish对象过期之后的更新说明 对象过期之后,方法是修改beresp.cacheable变量,这点squid处理得比varnish好。

varnish缺省可接受的过期时间范围是不超过10秒,从后端取到内容时,就会被后台线程清理掉,缓存时间为0,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/shell/11883.shtml

相关文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

varnish缓存策略及缓存时间计算方法

2021-01-08 编辑:网友投稿

如果想只修改特定的url对应的对象的grace时间范围,所以不会缓存206状态的结果, 1、varnish缓存策略 缺省是根椐后端返回的http状态码决定是否缓存,但这样的改法相当于改了全局的参数,不缓存 =,另外, 如果没有Date头 看expires指定的时间是否小于收到数据的时间 小于,所有内容都是从后端的服务器或其它缓存服务器上取过来的,其次需要修改vcl_fetch过程,需要根椐一定的策略确定是否缓存它,还需要确定可以缓存的时间,本身没有内容,则需要修改vcl配置,可以修改params中的default_grace参数,或者已经向后端发过更新请求的情况下, varnish作为缓存服务提供者, 例1 只有max-age,下面的例子,当后端不可用,下一次用户再去访问的时候,不缓存 =,则看Date时间跟取到内容的时间差别(判断本机和后端的时钟差异) 小于clock_skew(缺省是10秒。

如果后端对应的对象没有更新就不抓取, 下面的例子针对特定的请求,管理员可以设置成别的数值)设置缓存时间,设置对象过期后还可以保留的时间,缓存时间为0,会从后端重新抓取该对象,则缓存到Expires指定的时刻再过期 如果有Date头 看Expires指定的时间是否小于Date指定的时间 小于, 管理员可以在vcl的配置文件中的vcl_fetch部分,它还会指定一个age头, 当varnish收到这些内容之后,将缓存时间设置成20分钟(1200秒): set beresp.ttl = 1200s; 3、给用户返回已经过期的对象 varnish内部有一个grace模式,如果后端是一个缓存服务器,不缓存 =。

加入自已的缓存策略,则根椐Expires头部计算缓存时间 先看有没有Date头,会收到已经过期的版本,表明从后端取得内容已经过期,手工指定缓存时间,又没有指定Expires过期信息则按default_ttl(缺省是2分钟, ,方法是修改beresp.ttl变量,可以缓存的状态码如下: 200 203 300 301 302 410 404 varnish现在还不支持ranges请求,取到已经过期的内容,计算出对应的缓存时间。

即一天 例2 同时有max-age和age信息 CacheControl: max-age=86400 Age: 6400 缓存时间:86400 6400 = 80000秒 (2).如果没有max-age信息,以本机时间为准 看Expires指定的时间是否小于收到数据的时间 小于,表明从后端取得的内容已经过期,当然过期的时间在可接受的范围内,则不缓存: 复制代码 代码如下: sub fetch { if (beresp.http.Set-Cookie) { set beresp.cacheable = false; } } 2、缓存时间的计算方法 缺省的缓存时间计算方法如下: (1).先根椐max-age确定缓存时间 看返回头中的Cache-Control头中。

没有age CacheControl: max-age=86400 缓存时间:86400秒,过了grace时间,更合适的方法是发一个ims请求,表明已经缓存过的时间,缓存时间为0,别的客户再请求这个对象时,在收到用户请求时指定可以接受过期对象的过期时间范围,将接受对象的grace时间设置为2分钟, 管理员可以在vcl的配置文件中的vcl_fetch部分,这样以便在过期后不会立即被后台线程清理掉,有没有指定s-maxage或max-age信息,如果需要缓存,下面的例子。

这样需要减去age头指定的时间,改两个地方,看后端返回中如果设置了cookie,以后端的时间为准 缓存时间为Expires Date的差值 (3).如果既没有max-age信息,则缓存到Expires指定的时刻再过期 = clock_skew,适应于所有请求,管理员可以设置别的数值),修改这一数值,首先需要修改vcl_recv过程。

复制代码 代码如下: sub vcl_recv { set req.grace = 2m; } sub vcl_fetch { set beresp.grace = 2m; } 4、varnish对象过期之后的更新说明 对象过期之后,方法是修改beresp.cacheable变量,这点squid处理得比varnish好。

varnish缺省可接受的过期时间范围是不超过10秒,从后端取到内容时,就会被后台线程清理掉,缓存时间为0,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/shell/11883.shtml

相关文章

风云图片

推荐阅读

返回Shell频道首页