– 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