Chinaunix首页 | 论坛 | 博客
  • 博客访问: 213991
  • 博文数量: 39
  • 博客积分: 1949
  • 博客等级: 上尉
  • 技术积分: 347
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 16:24
文章分类

全部博文(39)

文章存档

2013年(1)

2012年(12)

2011年(24)

2010年(2)

分类: LINUX

2012-11-15 18:37:16

refresh_pattern 有很多参数,用户很大,今天研究了下stale-while-revalidate=NN。

是否有在日志中发现以下几个squid 请求状态:
TCP_STALE_HIT  squid提供了过期数据给用户
TCP_ASYNC_MISS 去后端server异步取数据,源站数据有更新
TCP_ASYNC_HIT  去后端server异步取数据,源站数据无更新
以上三种状态码 在设置了 stale-while-revalidate=NN(单位秒)的情况下出现,
这个是一个异步缓存验证机制,当用户请求一个即将过期文件或者已过期的文件时候(age>=max-age),squid先将本地过期数据给用户,然后squid(异步)去源站进行数据对比or更新
若数据有更新,squid则更新自己缓存,提供更新后的数据给下次访问者。

此参数对后端server不稳定情况下很有疗效。
refresh_pattern -i ^\.1\.com/1.txt$ 1 100% 1 stale-while-revalidate=180
在1.txt缓存时间age>60秒后,squid会先把本地缓存的文件给用户,同时squid会去后端server进行数据对比,若后端server此时不能提供服务,也不会影响用户的请求。但注意这个时间配置哦。尽量不要设置的太长。
后端server能正常响应的话,squid会对比数据是否更新,更新的话,就把更新的数据给到下一次请求用户。

阅读(3436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~