Varnish

Cheatsheet · la réponse déjà cuisinée Semaine 6 · Module 2
évolutif

Installer

sudo apt update sudo apt install varnish net-tools

Varnish s'installe sur sa propre instance : varnish30.

sudo netstat -tulpn | grep varnishd

Vérifier qui écoute où : varnishd doit tenir le port 80.

Apache déménage

sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default.conf

Apache quitte le port 80 : il devient un backend invisible derrière la cache.

sudo systemctl restart apache2.service

Relancer Apache sur son nouveau port.

Varnish prend la porte

sudo systemctl edit varnish.service

Le service : sur quelle adresse Varnish écoute (l'option -a).

sudo nano /etc/varnish/default.vcl

Le backend : à qui Varnish demande les pages qu'il n'a pas.

sudo systemctl daemon-reload sudo systemctl restart varnish.service

Recharger la définition du service, puis relancer.

Observer sa cache

sudo varnishstat sudo varnishstat -1 | grep -i cache

cache_hit contre cache_miss : le rendement de votre cache.

sudo varnishtop

Le palmarès des URL les plus demandées.

sudo systemctl restart varnish.service

La purge totale : cache vide, tout redevient un miss.

Hit, miss et durée de vie

Hit : la réponse déjà cuisinée, servie gratuitement. Miss : on cuisine une fois, pour tous les suivants. La durée de vie décide combien de temps un plat reste frais. Et la règle d'or : le contenu personnel (panier, session, admin) ne se met jamais en cache.

Les deux fichiers qui font tout

ExecStart=/usr/sbin/varnishd ... -a ADRESSE_DE_VARNISH:80 ... -f /etc/varnish/default.vcl backend default { .host = "ADRESSE_DE_HTTP20"; .port = "80"; }
-a :80 : où Varnish écoute : la nouvelle porte d'entrée -f default.vcl : le fichier de configuration VCL .host : le backend : l'adresse d'Apache (http20) .port : le port où Apache s'est réfugié

L'architecture change de sens : visiteur, puis varnish30 (port 80), puis http20 (backend), puis mysql10. Après toute édition du service : daemon-reload puis restart.

Cache HTTP : garder les réponses prêtes à resservir. Hit : réponse servie depuis la cache, gratuite. Miss : réponse cuisinée par le backend, puis gardée. Backend : le serveur qui cuisine derrière la cache. Durée de vie : la fraîcheur d'une réponse en cache. Purge : vider la cache : tout redevient miss.

420-5A4-MT · Serveurs évolutifs · cliquer une commande la copie