Cache

按下 CTRL+F5 或 CTRL+R 時清除 Varnish 中的內容

  • November 21, 2012

我想設置 Varnish 以清除記憶體中的內容,並在按下 CTRL+R 或 CTLR+F5 時直接從後端獲取它。

我使用這些規則,但這只會在按下 CTRL+F5 時從後端獲取內容。當我按 F5 時,我只從記憶體中獲取數據。

acl CTRLF5 {
  "127.0.0.1";
}

sub vcl_hit {

 if (client.ip ~ CTRLF5) {
   if (req.http.pragma ~ "no-cache" || req.http.Cache-Control ~ "no-cache")
   {
     set obj.ttl = 0s;
     return(pass);
   }
   else { return(deliver); }
 }
 else { return(deliver); }
}

可以用下一個語句來實現:

清漆 2.1.x

   if (req.http.Cache-Control ~ "no-cache"){
   purge_url(req.url);
   }

清漆 3.x

   if (req.http.Cache-Control ~ "no-cache"){
   ban(req.url);
   }

引用自:https://serverfault.com/questions/359164