Avr 172012
– Vider tout le cache (script PHP) :
<?php exec('echo "ban.url /*" | nc -q 1 127.0.0.1 6082'); ?>
– Vider le cache d’un vhost (script BASH) :
#!/bin/bash if [ ! -z $1 ] ; then case "$1" in -h|--help) echo "Usage ./clear_cache.sh HOST"; echo "For example HOST : exemple.com" ; exit 1 ;; *) HOST=$1;; esac ; else echo "Usage ./clear_cache.sh HOST"; echo "For example HOST : exemple.com" ; exit 1 ; fi echo "ban req.http.host ~ \"$HOST\"" | nc -q 1 127.0.0.1 6082 &> /dev/null echo "$HOST cleared"
– Vider le cache d’une URI (script BASH) :
#!/bin/bash url="/*" if [ ! -z $1 ] ; then case "$1" in -h|--help) echo "Usage ./clear_cache.sh URL"; echo "For example URL : /accueil" ; echo "URL= /* if argument missing"; exit 1 ;; *) url=$1;; esac ; fi echo "ban.url $url" | nc -q 1 127.0.0.1 6082 &> /dev/null echo "$url cleared"
– Vider le cache d’un host avec une URL (configuration varnish) :
acl purge { "W.X.Y.Z"; } sub vcl_recv { if (req.url ~ "^/purge-cache$") { if (!client.ip ~ purge) { error 405 "Not allowed."; } ban("req.http.host == " + req.http.host + " && req.url ~ .*"); error 200 "Banned."; } }
Pour rachaîchir, ouvrir http://www.exemple.com/purge-cache
– Rafraichir un objet avec une requête REFRESH (configuration varnish) :
sub vcl_recv { if (req.request == "REFRESH") { set req.hash_always_miss = true; set req.request = "GET"; } }
Commande pour rachaîchir :
curl -X REFRESH --header 'accept-encoding: gzip' -o /dev/null http://www.exemple.com/
– Purge une url complète quelque soit le host, les cookies,etc (configuration varnish) :
sub vcl_recv { if (req.request == "PURGE") { ban("req.url ~ " + req.url); error 200"Purged url " + req.url ; } }
Commande pour rachaîchir :
curl -I -X PURGE http://www.exemple.com/url_a_purge
– Rafraichir un site à partir d’une IP client (configuration varnish) :
acl purge { "W.X.Y.Z"; } sub vcl_recv { if (client.ip ~ purge) { set req.hash_always_miss = true; } }
– Rafraichir un site à partir d’une IP serveur secondaire (configuration varnish) :
acl purge { "W.X.Y.Z"; } sub vcl_recv { if (server.ip ~ purge) { set req.hash_always_miss = true; } }
Modifier votre etc/hosts pour pointer votre site sur l’IP secondaire de rafraîchissement