X-Git-Url: https://git.sesse.net/?p=remoteglot;a=blobdiff_plain;f=default.vcl;h=aa2585f56cd0a152350bd631a82bc9145dadc304;hp=e0fbc4555c20be4c1938a906fedee322ae4f898c;hb=4f754b372829496a9f53eb52923446cc2a0398c1;hpb=778e663fc0fd4657d78c8a6d27ea14e120cfb025 diff --git a/default.vcl b/default.vcl index e0fbc45..aa2585f 100644 --- a/default.vcl +++ b/default.vcl @@ -2,6 +2,7 @@ vcl 4.0; +# You can have multiple ones; see vcl_recv. backend analysis { .host = "127.0.0.1"; .port = "5000"; @@ -18,8 +19,12 @@ sub vcl_recv { } 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 { @@ -31,6 +36,7 @@ sub vcl_deliver { unset resp.http.X-Powered-By; } unset resp.http.x-analysis; + unset resp.http.x-analysis-backend; } sub vcl_hash { @@ -51,7 +57,10 @@ sub vcl_backend_response { } 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); }