Comment purger un élément de vos reverse proxy cache SQUID
Par Charles-Christian Croix le mardi, octobre 20 2009, 10:34 - Technologic - Lien permanent
L'utilisation d'un étage de cache web dans l'architecture d'une plate-forme d'hébergement est de plus en plus courante. Dans le cas de eZ Publish c'est même nécessaire si vous l'utilisé comme CMS générateur de site web [1].
Mais j'ai eu l'occasion de souligner l'intérêt d'un cache web à la lumière de mon actualité professionnel que cela soit quand Voici.fr dépasse les 650 K pages vue en 24h, quand Voici.fr et Gala.Fr ont survécu au pic d'audience du à la mort de Michael Jackson ou enfin quand l'optimisation d'un site eZ Publish 4 pour l'utilisation des caches web en prenant voici.fr en exemple.
Autorisé la purge dans squid.conf
Avant tout, il est nécessaire de modifier Squid via le fichier de configuration squid.conf afin d'autoriser la purge. Pour j'ai ajoutez les ligne suivantes dans ma configuration afin d'autorisé la purge depuis le squid et surtout depuis le réseau local afin que cela soit possible de toute les machines de l'architecture.
acl purge method PURGE http_access allow PURGE localnet http_access allow PURGE localhost
Purger squid avec cURL
Exemple pour purger une page du cache de trois serveurs SQUID avec cURL
~$ curl -I -X PURGE -H "Host: <HOST>" http://squid{1,2,3}/<URI>
Dans cet exemple nous allons supprimé la home page de http://www.femmeactuelle.fr/ (soit l'index) actuellement mise en cache sur nos trois serveurs reverse proxy squid :
~$ curl -I -X PURGE -H "Host: www.femmeactuelle.fr" http://squid{1,2,3}/ HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:26 GMT Content-Length: 0 HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:26 GMT Content-Length: 0 HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:26 GMT Content-Length: 0
Dans cet exemple nous avons voulu supprimer la page "cachée" de http://365.femmeactuelle.fr/ (soit l'index) Toutefois aucune page n'était présente dans le cache
~$ curl -I -X PURGE -H "Host: www2.femmeactuelle.fr" http://squid{1,2,3}/ HTTP/1.0 404 Not Found Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:45 GMT Content-Length: 0 HTTP/1.0 404 Not Found Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:45 GMT Content-Length: 0 HTTP/1.0 404 Not Found Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:35:45 GMT Content-Length: 0
Purger squid avec squidclient
La même chose est possible avec squidclient
# squidclient -m PURGE -p 80 -h prpsquid1 http://www.femmeactuelle.fr/
L'utilisation de "{1,2,3}" n'est pas possible, il faut utiliser une boucle bash :
~$ for I in 1 2 3; do squidclient -m PURGE -p 80 -h squid$I http://www.femmeactuelle.fr/; done HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:56:11 GMT Content-Length: 0 HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:56:11 GMT Content-Length: 0 HTTP/1.0 200 OK Server: squid/2.6.STABLE5 Date: Fri, 30 Jan 2009 10:56:11 GMT Content-Length: 0
Notes
[1] eZ n'est forcement utilisé comme générateur de site web. Il est avant tout un CMS; quelque soit la destination du contenu