add config files
[ckanext-datagovau.git] / admin / default.vcl
blob:a/admin/default.vcl -> blob:b/admin/default.vcl
  # This is a basic VCL configuration file for varnish. See the vcl(7)
  # man page for details on VCL syntax and semantics.
  #
  # Default backend definition. Set this to point to your content
  # server.
  #
  backend default {
  .host = "127.0.0.1";
  .port = "8080";
  }
   
  sub vcl_fetch {
  set beresp.grace = 1h;
   
  if (beresp.http.content-type ~ "(text|application)") {
  set beresp.do_gzip = true;
  }
  if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") {
  unset beresp.http.set-cookie;
  }
  }
  sub vcl_recv {
  if (req.url ~ "^/_tracking") {
  return (pass);
  }
  if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") {
  return(lookup);
  }
  if (req.http.Cookie) {
  set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing
   
  if (req.http.Cookie == "") {
  remove req.http.Cookie;
  }
  }
  }
  sub vcl_deliver {
  if (!resp.http.Vary) {
  set resp.http.Vary = "Accept-Encoding";
  } else if (resp.http.Vary !~ "(?i)Accept-Encoding") {
  set resp.http.Vary = resp.http.Vary + ",Accept-Encoding";
  }
  if (obj.hits > 0) {
  set resp.http.X-Cache = "HIT";
  } else {
  set resp.http.X-Cache = "MISS";
  }
  }
   
  #
  # Below is a commented-out copy of the default VCL logic. If you
  # redefine any of these subroutines, the built-in logic will be
  # appended to your code.
  # sub vcl_recv {
  # if (req.restarts == 0) {
  # if (req.http.x-forwarded-for) {
  # set req.http.X-Forwarded-For =
  # req.http.X-Forwarded-For + ", " + client.ip;
  # } else {
  # set req.http.X-Forwarded-For = client.ip;
  # }
  # }
  # if (req.request != "GET" &&
  # req.request != "HEAD" &&
  # req.request != "PUT" &&
  # req.request != "POST" &&
  # req.request != "TRACE" &&
  # req.request != "OPTIONS" &&
  # req.request != "DELETE") {
  # /* Non-RFC2616 or CONNECT which is weird. */
  # return (pipe);
  # }
  # if (req.request != "GET" && req.request != "HEAD") {
  # /* We only deal with GET and HEAD by default */
  # return (pass);
  # }
  # if (req.http.Authorization || req.http.Cookie) {
  # /* Not cacheable by default */
  # return (pass);
  # }
  # return (lookup);
  # }
  #
  # sub vcl_pipe {
  # # Note that only the first request to the backend will have
  # # X-Forwarded-For set. If you use X-Forwarded-For and want to
  # # have it set for all requests, make sure to have:
  # # set bereq.http.connection = "close";
  # # here. It is not set by default as it might break some broken web
  # # applications, like IIS with NTLM authentication.
  # return (pipe);
  # }
  #
  # sub vcl_pass {
  # return (pass);
  # }
  #
  # sub vcl_hash {
  # hash_data(req.url);
  # if (req.http.host) {
  # hash_data(req.http.host);
  # } else {
  # hash_data(server.ip);
  # }
  # return (hash);
  # }
  #
  # sub vcl_hit {
  # return (deliver);
  # }
  #
  # sub vcl_miss {
  # return (fetch);
  # }
  #
  # sub vcl_fetch {
  # if (beresp.ttl <= 0s ||
  # beresp.http.Set-Cookie ||
  # beresp.http.Vary == "*") {
  # /*
  # * Mark as "Hit-For-Pass" for the next 2 minutes
  # */
  # set beresp.ttl = 120 s;
  # return (hit_for_pass);
  # }
  # return (deliver);
  # }
  #
  # sub vcl_deliver {
  # return (deliver);
  # }
  #
  # sub vcl_error {
  # set obj.http.Content-Type = "text/html; charset=utf-8";
  # set obj.http.Retry-After = "5";
  # synthetic {"
  # <?xml version="1.0" encoding="utf-8"?>
  # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  # "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  # <html>
  # <head>
  # <title>"} + obj.status + " " + obj.response + {"</title>
  # </head>
  # <body>
  # <h1>Error "} + obj.status + " " + obj.response + {"</h1>
  # <p>"} + obj.response + {"</p>
  # <h3>Guru Meditation:</h3>
  # <p>XID: "} + req.xid + {"</p>
  # <hr>
  # <p>Varnish cache server</p>
  # </body>
  # </html>
  # "};
  # return (deliver);
  # }
  #
  # sub vcl_init {
  # return (ok);
  # }
  #
  # sub vcl_fini {
  # return (ok);
  # }