snapshot: follow redirects to /file/<hash> in varnish
authorPeter Palfrader <peter@palfrader.org>
Sat, 6 Apr 2019 12:50:26 +0000 (14:50 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sat, 6 Apr 2019 12:50:26 +0000 (14:50 +0200)
modules/roles/templates/snapshot/snapshot.debian.org.vcl.erb

index 8659b63..c01fcb7 100644 (file)
@@ -35,3 +35,14 @@ sub vcl_deliver {
     set resp.http.connection = "close";
   }
 }
+
+sub vcl_backend_response {
+    if (bereq.retries == 0 &&
+        beresp.status == 302 &&
+        beresp.http.location ~ "https?://[^/]*/file/") {
+        set beresp.http.location = regsub(beresp.http.location,"^https?://","");
+        set bereq.http.host = regsub(beresp.http.location,"/.*$","");
+        set bereq.url = regsub(beresp.http.location,"[^/]*","");
+        return (retry);
+    }
+}