Advertisement
Guest User

vcl

a guest
Dec 6th, 2011
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.88 KB | None | 0 0
  1. backend default {
  2.   .host               = "localhost";
  3.   .port               = "81";
  4.   .first_byte_timeout = 300s;
  5. }
  6. acl purge_hosts {
  7.   "localhost";
  8. }
  9. sub vcl_recv {
  10.   set req.http.host = "test.example.com";
  11.   set req.http.X-Forwarded-For = client.ip;
  12.   if (req.http.X-Refresh) {
  13.     if (!client.ip ~ purge_hosts) {
  14.       set req.hash_always_miss = true;
  15.     }
  16.   }
  17.   if (req.request == "PURGE") {
  18.     if (!client.ip ~ purge_hosts) {
  19.       error 405 "Not allowed!";
  20.     }
  21.     return (lookup);
  22.   }
  23.   if (req.request == "POST") {
  24.     return (pass);
  25.   }
  26.   if (req.url ~ "^/index.php") {
  27.     return (pass);
  28.   }
  29.   if (req.url ~ "^/admin") {
  30.     return (pass);
  31.   }
  32.  
  33.   if (req.url ~ "^/out/anost_v4/src/") {
  34.     if (! (req.url ~ "\.swf")) {
  35.       unset req.http.cookie;
  36.       set req.grace = 24h;
  37.       return (lookup);
  38.     }
  39.   }
  40.   if (req.url ~ "^/out/anost_v4/src/min/") {
  41.     unset req.http.cookie;
  42.     return (lookup);
  43.   }
  44.   if (req.url ~ "[\?&]lang=") {
  45.     set req.url = regsub(req.url, "\?lang=[0-9a-zA-Z]+", "?");
  46.     set req.url = regsub(req.url, "&lang=[0-9]", "");
  47.     set req.url = regsub(req.url, "\?&", "?");
  48.     set req.url = regsub(req.url, "\?$", "");
  49.   }
  50.   if (req.url ~ "^(/en/(Music|Merch|Artists|Labels|Special|Shop-Shop|contact|General-Terms-and-Conditions|Service-and-Help|Rights-of-Withdrawal|$)|/de/$|/(Musik|Merch|Artists|Labels|Special|Shop-Shop|kontakt|Allgemeine-Geschaeftsbedingungen|Service-and-Hilfe|Widerrufsbelehrung|$))") {
  51.     if (req.url ~ "[\?&][^/]+") {
  52.       return (pass);
  53.     }
  54.     unset req.http.cookie;
  55.     if (req.url ~ "^/(en/(Music|Merch|Artists|Labels|Special)|en|de|Musik|Merch|Artists|Labels|Special)/$") {
  56.       set req.grace = 12h;
  57.     } else {
  58.       set req.grace = 7d;
  59.     }
  60.     return (lookup);
  61.   }
  62. }
  63. sub vcl_hit {
  64.   if (req.request == "PURGE") {
  65.     purge;
  66.     error 200 "Purged";
  67.   }
  68. }
  69. sub vcl_miss {
  70.   if (req.request == "PURGE") {
  71.     error 400 "Not in cache.";
  72.   }
  73. }
  74. sub vcl_fetch {
  75.   set beresp.grace = 8d; # should be the same as max grace in recv
  76.   if (beresp.http.content-type ~ "text") {
  77.     set beresp.do_gzip = true;
  78.   }
  79.   if (req.url ~ "^/out/anost_v4/src/") {
  80.     unset beresp.http.set-cookie;
  81.     set beresp.ttl = 86400s;
  82.     return (deliver);
  83.   }
  84.   if (req.url ~ "^/out/anost_v4/src/min/") {
  85.     unset beresp.http.set-cookie;
  86.     return (deliver);
  87.   }
  88.   if (req.url ~ "^(/en/(Music|Merch|Artists|Labels|Special|Shop-Shop|contact|General-Terms-and-Conditions|Service-and-Help|Rights-of-Withdrawal|$)|/de/$|/(Musik|Merch|Artists|Labels|Special|Shop-Shop|kontakt|Allgemeine-Geschaeftsbedingungen|Service-and-Hilfe|Widerrufsbelehrung|$))") {
  89.     unset beresp.http.set-cookie;
  90.     if (req.url ~ "^/(en/(Music|Merch|Artists|Labels|Special)|en|de|Musik|Merch|Artists|Labels|Special)/$") {
  91.       set beresp.ttl = 13h;
  92.     } else {
  93.       set beresp.ttl = 8d;
  94.     }
  95.     return (deliver);
  96.   }
  97. }
  98.  
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement