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

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(required)

(required)

Spam protection by WP Captcha-Free