Purge du cache des URLs Varnish 4.x

En passant à la version 4.x de Varnish, les commandes de purge des urls dans l’outil varnishadm a évolué, il n’est plus possible d’utiliser la commande « ban.url . » .

Pour purger l’ensemble des urls en cache dans Varnish, il faut utiliser la commande suivante dans varnishadm :

 

 Purge du cache des URLs Varnish 4.x

Varnish-cache changer la configuration dynamiquement

logo-varnishSur un site en production il est souvent bien pratique de mettre à jour la configuration de varnish à chaud (sans avoir à redémarrer le service). Le rechargement de configuration passe par l’utilisation de varnishadm.

Chargement du fichier VCL

Une fois la modification effectuée dans votre fichier VCL, lancez l’utilitaire varnishadm afin de charger le fichier en utilisant la commande vcl.load.

Le chargement de la configuration avec la commande vcl.load s’effectue en précisant le nom de la configuration (dans notre exemple defaut). Celle-ci ne doit pas être déjà utilisée.

Utilisation de la nouvelle configuration

Pour activer la nouvelle configuration, il suffit d’utiliser la commande vcl.use avec le nom de la configuration.

Si l’on a besoin de faire des modification et de recharger le vcl sur la même configuration il faut la décharger en utilisant la commande vcl.discard

Liste des configurations avec leur statut

La commande vcl.list fournit la liste des vcl chargés dans des configurations et indique la configuration active. Par défaut si le chargement a été effectué au démarrage, on obtient le résultat suivant :

Voici la liste des commandes sur les vcl :

Résoudre REMOTE_ADDR derrière un reverse proxy Varnish

Lorsqu’un site est derrière un reverse proxy (comme Varnish Cache), le php ne reçoit dans la variable $_SERVER[‘REMOTE_ADDR’] que l’adresse IP du reverse proxy. Afin d’accéder à l’IP du client, il faut ajouter une directive au fichier VCL de Varnish et modifier le code php permettant de récupérer l’ip.

 

Ajout dans le fichier .vcl de Varnish

Dans le php, on récupère l’IP du client en utilisant

 Résoudre REMOTE_ADDR derrière un reverse proxy Varnish