X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Fvarnish%2Ffiles%2Fdefault.vcl;fp=modules%2Fvarnish%2Ffiles%2Fdefault.vcl;h=cb946cfbcd074e41ca47d93a195390f9a0e6d6c4;hb=4c5c4151615376e493908971c838fd4ed397b99a;hp=0000000000000000000000000000000000000000;hpb=dbed5f999448fc9b345011cbf2b8b20a58467230;p=dsa-puppet.git diff --git a/modules/varnish/files/default.vcl b/modules/varnish/files/default.vcl new file mode 100644 index 00000000..cb946cfb --- /dev/null +++ b/modules/varnish/files/default.vcl @@ -0,0 +1,80 @@ +backend holter { + # holter.debian.org + .host = "194.177.211.202"; + .port = "80"; +} +backend powell { + # powell.debian.org + .host = "87.106.64.223"; + .port = "80"; +} + +sub vcl_recv { + + # Add a unique header containing the client address + remove req.http.X-Forwarded-For; + set req.http.X-Forwarded-For = req.http.rlnclientipaddr; + + ### restart logic, this will redefine the backends if vcl_restart has been triggered + if (req.restarts == 0) { + set req.backend = holter; + } else if (req.restarts == 1) { + set req.backend = powell; + } else if (req.restarts == 2) { + set req.backend = holter; + } else { + set req.backend = holter; + } + + + if (req.request == "GET" && req.url ~ "^/search?") { + return(pass); + } + if (req.request == "GET" && req.url ~ "^/(squeeze|wheezy|sid|experimental|stable|testing|unstable|rc-buggy|squeezy-backports|lenny-backports|Pics)/") { + return(lookup); + } +} + +sub vcl_fetch { + if (beresp.status != 200 && beresp.status != 403 && beresp.status != 404 && beresp.status != 301 && beresp.status != 302) { + return(restart); + } + + # if i cant connect to the backend, ill set the grace period to be 600 seconds to hold onto content + set beresp.ttl = 600s; + set beresp.grace = 600s; + + if (beresp.status == 404) { + set beresp.ttl = 0s; + } + + if (beresp.status >= 500) { + set beresp.ttl = 0s; + } + + if (req.request == "GET" && req.url ~ "^/search?") { + set beresp.ttl = 0s; + } + + if (req.request == "GET" && req.url ~ "^/(squeeze|wheezy|sid|experimental|stable|testing|unstable|rc-buggy|squeezy-backports|lenny-backports|Pics)/") { + set beresp.ttl = 3600s; + } + + + set beresp.http.X-Cacheable = "YES"; + return(deliver); +} + + +sub vcl_deliver { + + set resp.http.X-Served-By = server.hostname; + if (obj.hits > 0) { + set resp.http.X-Cache = "HIT"; + set resp.http.X-Cache-Hits = obj.hits; + } else { + set resp.http.X-Cache = "MISS"; + } + + return(deliver); +}