基于url类型的varnish缓存

时间:2014-08-04 11:53:33

标签: varnish-vcl

我正在配置清漆。我想如果请求的URL是“/balancer/50/s91.txt”然后不要缓存它。如果请求的URL是“/balancer/vod/website/test.flv”,则将其缓存1天。 我写了

sub vcl_recv {    
 if (req.url ~ "vod") {
   return(lookup);
 }
  return(pass);
 }

sub vcl_fetch {  
  if (req.url ~ "vod") {
   # Cache for 1 day
   set beresp.ttl = 1d;
   return(deliver);
 }

 }

我是第一次使用它。请帮我怎么做。

1 个答案:

答案 0 :(得分:1)

您可能想要做类似的事情:

sub vcl_recv {

  # If the requested url is "/balancer/50/s91.txt" then dont cache it.
  if (req.url ~ "^/balancer/50/s91.txt$") {
    return (pass);
  }

  # Cache everything else
  return (lookup);

}

sub vcl_fetch {
  # Default TTL.  
  set beresp.ttl = 10m;

  # /balancer/vod/website/test.flv : cache it for 1 day.
  if (req.url ~ "^/balancer/vod/website/test.flv$") {
    set beresp.ttl = 1d;
  }
}

在这里,我缓存除了/balancer/50/s91.txt之外的所有内容。我为/balancer/vod/website/test.flv设置了24小时的特定TTL。