2013年4月2日星期二

Varnish simple usage

# 安装
apt-get install varnish

# 配置

backend test {
       .host = "1.1.1";
       .port = "80";
}

acl purge {
       "localhost";
       "127.0.0.1";
       "10.0.0.0"/24;
}

sub vcl_recv {
       if (req.request == "PURGE") {
               if (!client.ip ~ purge) {
                       error 405 "Not allowed.";
               }
               return (lookup);
       }

       if (req.http.host ~ "test.com") {
               set req.backend = test;
               if (req.request != "GET" && req.request != "HEAD") {
                       return (pipe);
               }
               else {
                       return (lookup);
               }
       }
       else {
               error 404 "This is Cache Server";
               return (lookup);
       }
}

sub vcl_hit {
       if (req.request == "PURGE") {
               set obj.ttl = 0s;
               error 200 "Purged.";
       }
}

sub vcl_miss {
       if (req.request == "PURGE") {
               error 404 "Not in cache.";
       }
}

sub vcl_fetch {
       if (req.request == "GET" && req.url ~ "\.(txt|js)$") {
#               set obj.ttl = 3600s;
       set beresp.ttl = 120 s;
                return (hit_for_pass);

       }
       else {
        #       set obj.ttl = 30d;
set beresp.ttl = 120s;
return (hit_for_pass);
       }
}

没有评论:

发表评论