![]()
In order to configure PURGE add this lines into your VCL_RECV:
vcl 4.0;
import std;
sub vcl_recv {
# Allow banning
if (req.method == "PURGE") {
# Same ACL check as above:
if (!client.ip ~ purge) {
return(synth(405, "This IP is not allowed to send PURGE requests."));
}
ban("req.http.host == " + req.http.host + " && req.url == " + req.url);
# If you got this stage (and didn't error out above), purge the cached result
return (synth(200, "Purged"));
}
}
To test it:
$ curl -v -k -H "host: www.mydomain.com" -X PURGE http://varnish_server_ip/
Remember to add ACL into your files

You save me man!!!!
Greetings from Brazil!
I am pleased that my article helped you!
It is strange that ban(“req.http.host == ” + req.http.host + ” && req.url == ” + req.url); did the trick while return(purge) never did. Thank you for putting me on the right direction !