+[[!template id=plugin name=purge core=0 author="[[ssm]]"]]
+
+IkiWiki plugin to send PURGE requests to remote http cache server (like Varnish Cache) when your content changes.
+
+PURGE requests are sent for the changed page, as well as all pages indirectly changed when ikiwiki rebuilds the web pages.
+
+# Download
+
+Download from [Github](https://github.com/ssm/ikiwiki-plugin-purge)
+
+# Configure ikiwiki
+
+ # purge_url (mandatory), the address of your cache server.
+ purge_url: http://example.com/
+
+ # purge_timeout (optional, default 5) timeout in seconds for a purge request.
+
+ # purge_method (optional, default "PURGE") HTTP method to use.
+
+# Configure your cache server
+
+For Varnish, you'll need to add a handler for the non-standard "PURGE" method, and preferrably an ACL which restricts who can send these requests to empty your cache.
+
+ acl origin_server {
+ "localhost";
+ "192.0.2.0"/24;
+ "2001:db8::"/64;
+ }
+
+ sub vcl_recv {
+ if (req.method == "PURGE") {
+ if (!client.ip ~ origin_server) {
+ return(synth(405,"Not allowed."));
+ }
+ return (purge);
+ }
+ }
+