当前位置: 主页 > 性能调优 >

squid 中refresh_patern 实现的异步刷新和offline_mode 的

时间:2013-04-28 09:49来源:www.chenqing.org 作者:chenqing 点击:
在做缓存的过程中,有些是客户设置缓存策略不合理,或者自己本省想节省带宽或者想给用户更快的体验,或者减少用户看到5xx,4xx的概率,有时候就会用到异步刷新甚至是squid的offlin
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


在做缓存的过程中,有些是客户设置缓存策略不合理,或者自己本省想节省带宽或者想给用户更快的体验,或者减少用户看到5xx,4xx的概率,有时候就会用到异步刷新甚至是squid的offline_mode。

异步刷新

异步刷新是squid中利用refresh_pattern 中的stale-while-revalidate=n (n是秒数)来实现的

适用范围

频繁过期的静态页面

功能描述

网民端发起的请求直接拿到内容,即使到了过期时间也不再过期回源,这样就减少了回源时间
达到过期时间时,FC主动回源校验,并获取新的内容,保证本地的内容是新的

具体配置

1、 在refresh_pattern配置里加上选项stale-while-revalidate=n即可,如 refresh_pattern -i ^http 1440 0% 1440 ignore-reload override-lastmod stale-while-revalidate=86400 #一天一次同步回源

2、值n表示: Squid perform an asyncronous cache validation if the object isn’t more stale than n. 在n时间内,squid将执行异步cache校验。 超出n时间,squid将会同步回源。

3、n单位是秒(s)

refresh_pattern各个子项:

ignore-reload:客户端的Ctrl+F5强制刷新请求被忽略,即Cache-Control:no-cache头被删除了。
ignore-no-cache:忽略源站的Cache-Control:no-cache要求,这个Object可以缓存在FC中
reload-into-ims:配置此项,则是IMS回源,否则不用IMS机制。
override-lastmod:把last-modifed在min-age内认为是不过期的,否则是过期的,需要回源校验。
ignore-private:忽略源站的Cache-Control:Private要求,这个Object可以缓存在FC中
override-expire: 忽略源站给的expires头,squid根据Date和max-age,s-max-age重新计算过期时间。多用在源站给出的expires头时间不准确,但是有正确的date或者max-age的场合。

语法:

refresh_pattern -i @http://www.sohu.com/xyz 60 0% 60 ignore-reload

-i:配置之后忽略配置url部分的大小写
@http://www.sohu.com/xyz:url域,即匹配url的关键域。如果在域名部分(www.sohu.com)部分有通配,则不适合使用新功能,可以完全按照之前的filter配置方法进行配置。如果域名部分没有通配符,则可以使用@http://www.sohu.com/的方法配置。注意域名必须被封闭,即@http://www.sohu.com被认为是一个原始的配置方法
60 0% 60:过期时间最小,最大,和百分比三个值。
ignore-reload:这个域可以配置四个选项option,分别为override-expire, override-lastmod, reload-into-ims, ignore-reload。

 

offline_mode

默认为off

Enable this option and Squid will never try to validate cached objects.

转载请注明linux系统运维
http://www.linuxyw.com/linux/tiaoyou/20130428/138.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容