0 Comments

Varnish缓存的配置(1)

发布于:2013-02-23  |   作者:广州网站建设  |   已聚集:人围观
Varnish缓存的配置(1)

简单的配置文件内容如下:


  1. backend webserver {  
  2. .host = "127.0.0.1";  
  3. .port = "8090";  
  4. .connect_timeout = 4s;  
  5. .first_byte_timeout = 5s;  
  6. .between_bytes_timeout = 20s;  
  7. }  
  8. acl purge {  
  9.        "localhost";  
  10.        "127.0.0.1";  
  11.        "18.81.12.10";  
  12. }  
  13.  
  14. sub vcl_recv {  
  15.  
  16.        if (req.request == "PURGE") {  
  17.                if (!client.ip ~ purge) {  
  18.                        error 405 "Not allowed.";  
  19.                }  
  20.                return(lookup);  
  21.        }  
  22.  
  23.        if (req.http.host ~ "^(read)?.easou.com$") {  
  24.                set req.backend = webserver;   
  25.                if (req.request != "GET" && req.request != "HEAD") {  
  26.                        return(pipe);  
  27.                }  
  28.                else {  
  29.                        return(lookup);  
  30.                }  
  31.        }  
  32.        else {  
  33.                error 404 " Cache Server";   
  34.                return(lookup);  
  35.        }  
  36.  
  37.  if (req.request == "GET" && req.url ~ "\.(png|swf|txt|png|gif|jpg|css|js| htm|html)$") {  
  38.   unset req.http.cookie;  
  39.  }  
  40.  
  41.  if (req.url ~ "^/images") {  
  42.   unset req.http.cookie;  
  43.  }  
  44.  
  45.      if (req.http.Cache-Control ~ "(no-cache|max-age=0)") {  
  46.         purge_url(req.url);   
  47.      }   
  48.      return (lookup);  
  49.  
  50. if (req.http.x-forwarded-for) {   
  51.         set reqreq.http.X-Forwarded-For =   
  52.                 req.http.X-Forwarded-For ", " client.ip; }   
  53. else { set req.http.X-Forwarded-For = client.ip; }  
  54.  
  55.  
  56. if (req.request != "GET" &&  
  57.     req.request != "HEAD" &&  
  58.     req.request != "PUT" &&  
  59.     req.request != "POST" &&  
  60.     req.request != "TRACE" &&  
  61.     req.request != "OPTIONS" &&  
  62.     req.request != "DELETE") {  
  63.   return (pipe);  
  64.  }  
  65.  
  66.  if (req.request != "GET" && req.request != "HEAD") {  
  67.   return (pass);  
  68.  }   
  69.  
  70.  if (req.http.Authorization || req.http.Cookie) {  
  71.   return (pass);  
  72.  }  
  73. }  
  74.  sub vcl_pipe {  
  75.       # set req.http.connection = "close";  
  76.      return (pipe);}  
  77.  sub vcl_hit {  
  78.  if (!obj.cacheable) {  
  79.   return (pass);  
  80.  }  
  81.  if (req.request == "PURGE") {  
  82.          set obj.ttl = 0s;  
  83.          error 200 "Purged.";  
  84.       }  
  85.  return (deliver);  
  86. }  
  87.  
  88. sub vcl_miss {  
  89.  return (fetch);  
  90. }  
  91.  
  92.  
  93. sub vcl_fetch {  
  94.  
  95. if (!beresp.cacheable) {  
标签:
飞机