]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/varnish/files/default.vcl
0b9ec708510b246c3d05a1766b7ecdb69a402315
[dsa-puppet.git] / modules / varnish / files / default.vcl
1 ##
2 ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
3 ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
4 ##
5
6
7 director packages_debian_org random {
8         {
9                 .backend = {
10                         .host = "194.177.211.202";
11                         .port = "80";
12                 }
13                 .weight = 10000;
14         }
15         {
16                 .backend = {
17                         .host = "87.106.64.223";
18                         .port = "80";
19                 }
20                 .weight = 1;
21         }
22 }
23
24
25 sub vcl_recv {
26
27         # Add a unique header containing the client address
28         remove req.http.X-Forwarded-For;
29         set    req.http.X-Forwarded-For = req.http.rlnclientipaddr;
30
31         set req.backend = packages_debian_org;
32
33         return(lookup);
34 }
35
36 sub vcl_fetch {
37         if (beresp.status != 200 && beresp.status != 403 && beresp.status != 404 && beresp.status != 301 && beresp.status != 302) {
38                 return(restart);
39         }
40
41         # if i cant connect to the backend, ill set the grace period to be 600 seconds to hold onto content
42         set beresp.ttl = 600s;
43         set beresp.grace = 600s;
44
45         if (beresp.status >= 500) {
46                 set beresp.ttl = 0s;
47         }
48
49         set beresp.http.X-Cacheable = "YES";
50         return(deliver);
51 }
52
53
54 sub vcl_deliver {
55
56         set resp.http.X-Served-By = server.hostname;
57         if (obj.hits > 0) {
58                 set resp.http.X-Cache = "HIT";
59                 set resp.http.X-Cache-Hits = obj.hits;
60         } else {
61                 set resp.http.X-Cache = "MISS";
62         }
63
64         return(deliver);
65 }
66