Purger le cache sur Squid

 

Image

Un serveur Squid est un proxy distribué en tant que logiciel libre. Le principe du proxy est de garder certains éléments en cache afin d’augmenter la vitesse de navigation des utilisateurs. Toutefois parfois il peut être gênant de garder certains éléments en cache, par exemple pour un développeur web voulant visualiser des modifications qu’il vient d’effectuer sur un site internet. Dans la suite de cette page, vous apprendrez à purger du cache les éléments pour un site choisi.

Purger du cache les éléments choisis

Modifier la configuration de Squid pour autoriser la purge

Dans un premier temps, il vous faut modifier le fichier de configuration de Squid (squid.conf) afin d’autoriser la purge. Pour ce faire, éditez le fichier /etc/squid/squid.conf puis ajoutez les ligne suivantes :

acl PURGE method purge
http_access allow purge localhost
http_access deny purge

Vous devez maintenant ajouter un mot de passe pour le cache manager ( cache_mgr ), toujours dans le fichier de configuration ajouter une ligne :

 cachemgr_passwd password objects

L’option objects permet de limiter le champ d’action au manager, toutefois il sera possible de purger le cache.

Enfin pour que votre nouvelle configuration soit prise en compte, dans la console de votre proxy entrez la ligne :

squid -k reconfigure

Faire une liste des objets que l’on veut supprimer

Pour créer une liste « lst-obj », qui contient tous les objets en provenance du site linuxfr par exemple, il vous suffit d’entrer la ligne suivante dans la console de votre proxy:

squidclient -p 8080 -U manager -W password mgr:objects | grep linuxfr > lst-obj

Vous pouvez afficher la liste lst-obj grâce à la ligne suivante :

more lst-obj
    GET http://linuxfr.org/2009/04/images/ecrire.png
    GET http://linuxfr.org/forums/images/ecrire.png
    GET http://linuxfr.org/backend/journaux/rss20.rss
    GET http://linuxfr.org/~Zenitram/28107.html
    GET http://linuxfr.org/forums/10/9666.html
    GET http://linuxfr.org/forums/30/23427.html
    GET http://linuxfr.org/2007/03/images/ecrire.png
    GET http://linuxfr.org/css/contrib/nightgrey.css
    GET http://linuxfr.org/css/linuxfr_print.css
    GET http://linuxfr.org/2009/04/09/25285.html

Purger les objets présents dans la liste

Vous pouvez maintenant supprimer les objets que vous avez mis dans la liste lst-obj, en exécutant la ligne suivante :

cut -d" " -f2 lst-obj | xargs -n 1 squidclient -m PURGE -p 8080

Le proxy vous confirme alors la purge en affichant alors la liste des éléments supprimés.