MY VCL: if (req.method == "PURGE") { if (!client.ip ~ purge) { return (synth(000, "Not Allowed")); } return (purge); } Varnishlog: - ReqMethod PURGE - ReqURL XXXXXXXXXXXXXXXXXXXXXXXXXXXX - ReqProtocol HTTP/1.1 - ReqHeader User-Agent: XXXXXXXXXXXXXXXXXXXXXXXXXX - ReqHeader Accept: */* - ReqHeader Host:XXXXXXXXXXXXXXXXXXXXXXXXX - ReqHeader X-Forwarded-For: ::1 - VCL_call RECV - ReqUnset Host:XXXXXXXXXXXXXXXX - ReqHeader host: XXXXXXXXXXXXXX - VCL_acl MATCH purge "localhost" - VCL_acl MATCH purge "localhost" - VCL_return purge - VCL_call HASH - VCL_return lookup - VCL_call PURGE - Debug "VCL_error(200, Purged)" - VCL_return synth - Timestamp Process: 1406541624.863881 0.000110 0.000110 - RespHeader Date: Mon, 28 Jul 2014 10:00:24 GMT - RespHeader Server: Varnish - RespHeader X-Varnish: 3607188 - RespProtocol HTTP/1.1 - RespStatus 200 - RespReason OK - RespReason Purged - VCL_call SYNTH - RespHeader Content-Type: text/html; charset=utf-8 - VCL_return deliver - RespHeader Content-Length: 602 - Debug "RES_MODE 2" - RespHeader Connection: keep-alive - RespHeader Accept-Ranges: bytes - Timestamp Resp: 1406541624.863990 0.000220 0.000110 - ReqAcct 212 0 212 204 602 806 - End