刚刚学习使用varnish,这个章节测试varnish的purge功能。

一、 配置vcl,在vcl中添加如下代码。可以参考官网配置,http://www.varnish-cache.org/trac/wiki/VCLExamplePurging

   
   
   
   
  1. sub vcl_hit { 
  2.         if (req.request == "PURGE") { 
  3.                 set obj.ttl = 0s; 
  4.                 error 200 "Purged."
  5.         } 
  6.  
  7. sub vcl_miss { 
  8.         if (req.request == "PURGE") { 
  9.                 error 404 "Not in cache."
  10.         } 

二、 使用varnishadm来purge

1. 清除某个文件,$表示正则表达式的结尾附;

  /opt/varnish/bin/varnishadm -T :4488 purge.url test.jpg$

2. 清除某个文件夹

  varnishadm -T :4488 purge.url ^/p_w_picpaths/.*$

三、通过varnishlog来验证,访问某个元素,每刷新一次,x-cache-hits会增加

  [root@VMSHcentos01 ~]# /opt/varnish/bin/varnishlog -i TxHeader
   13 TxHeader     c Date: Fri, 13 May 2011 06:28:18 GMT
   13 TxHeader     c Via: 1.1 varnish
   13 TxHeader     c X-Varnish: 1688554888
   13 TxHeader     c Last-Modified: Thu, 14 Apr 2011 03:52:45 GMT
   13 TxHeader     c Cache-Control: max-age=31536000
   13 TxHeader     c Connection: keep-alive
   13 TxHeader     c X-Cache: HIT
   13 TxHeader     c X-Cache-Hits: 1
   13 TxHeader     c Date: Fri, 13 May 2011 06:28:26 GMT
   13 TxHeader     c Via: 1.1 varnish
   13 TxHeader     c X-Varnish: 1688554889
   13 TxHeader     c Last-Modified: Thu, 14 Apr 2011 03:52:45 GMT
   13 TxHeader     c Cache-Control: max-age=31536000
   13 TxHeader     c Connection: keep-alive
   13 TxHeader     c X-Cache: HIT
   13 TxHeader     c X-Cache-Hits: 2

执行purge,

/opt/varnish/bin/varnishadm -T :4488 purge.url 82839fc8-f49c-4191-bf02-420fe0c40310.jpg$

重新访问,看到Hits是0.

     15 TxHeader     b X-Varnish: 1688554890
   13 TxHeader     c Date: Fri, 13 May 2011 06:30:48 GMT
   13 TxHeader     c Via: 1.1 varnish
   13 TxHeader     c X-Varnish: 1688554890
   13 TxHeader     c Last-Modified: Thu, 14 Apr 2011 03:52:45 GMT
   13 TxHeader     c Cache-Control: max-age=31536000
   13 TxHeader     c Connection: keep-alive
   13 TxHeader     c X-Cache: MISS
   13 TxHeader     c X-Cache-Hits: 0