vcl 4.0;
+# You can have multiple ones; see vcl_recv.
backend analysis {
.host = "127.0.0.1";
.port = "5000";
}
if (req.http.host ~ "analysis\.sesse\.net$" && req.url ~ "^/analysis\.pl") {
set req.backend_hint = analysis;
+ # Ignored by the backend; just to identify it in vcl_backend_response.
+ set req.http.x-analysis-backend = "backend1";
return (hash);
}
+ # You can check on e.g. /analysis2\.pl here if you have multiple
+ # backends; just remember to set x-analysis-backend to something unique.
}
sub vcl_deliver {
if (resp.http.x-analysis) {
- set resp.http.date = now;
+ set resp.http.Date = now;
+ unset resp.http.X-Varnish;
+ unset resp.http.Via;
+ unset resp.http.Age;
+ unset resp.http.X-Powered-By;
}
unset resp.http.x-analysis;
+ unset resp.http.x-analysis-backend;
}
sub vcl_hash {
}
if (beresp.http.content-type ~ "json") {
set beresp.http.x-analysis = 1;
- ban ( "obj.http.x-analysis == 1 && obj.http.x-remoteglot-last-modified != " + beresp.http.x-remoteglot-last-modified );
+ set beresp.http.x-analysis-backend = bereq.http.x-analysis-backend;
+ ban ( "obj.http.x-analysis == 1 && " +
+ "obj.http.x-analysis-backend == " + bereq.http.x-analysis-backend + " && " +
+ "obj.http.x-rglm != " + beresp.http.x-rglm );
}
return (deliver);
}