Semaine 7 · Diaporama de notions

La cache
qui absorbe tout

Acte 6 : Varnish s'installe en avant du web et absorbe les demandes répétées avant qu'elles ne coûtent quoi que ce soit.

420-5A4-MT · Module 2 · Varnish
Où en est l'histoire

Pourquoi recuisiner le même plat ?

La séparation a soulagé les machines, mais un gaspillage saute aux yeux : à chaque visite, WordPress recalcule la même page d'accueil - PHP s'exécute, MySQL répond, Apache assemble - pour servir un résultat identique à celui d'il y a deux secondes. Dix mille visiteurs, dix mille cuissons du même plat. L'entreprise engage un serveur dont le seul métier est de garder les plats chauds : une cache.

Notion 1

Le cache HTTP

Une cache garde en mémoire les réponses déjà servies, pour les redonner instantanément sans refaire le travail.

Hit

La page demandée est déjà dans la cache : réponse immédiate, zéro travail pour le web et la base. C'est le but.

Miss

La page n'y est pas (ou est périmée) : la cache la demande au serveur web, la sert, et la garde pour les suivants.

Durée de vie

Chaque entrée expire après un délai (TTL) : l'équilibre entre fraîcheur du contenu et travail épargné.

Notion 2

Varnish, l'accélérateur HTTP

Varnish est une cache HTTP professionnelle qui se place EN AVANT du serveur web. Les visiteurs parlent à Varnish; Varnish ne parle à Apache que lorsqu'il le faut.

# l'architecture change de sens :
visiteur ──► varnish30 (port 80) ──► http20 (backend) ──► mysql10
Notion 3

Les deux fichiers qui font tout

# 1. le service : sur quelle adresse Varnish ecoute
sudo systemctl edit varnish.service
ExecStart=/usr/sbin/varnishd ... -a ADRESSE_DE_VARNISH:80 ... -f /etc/varnish/default.vcl
# 2. le backend : a qui Varnish demande les pages
sudo nano /etc/varnish/default.vcl
backend default { .host = "ADRESSE_DE_HTTP20"; .port = "80"; }

Et de son côté, Apache cesse d'écouter sur toutes les adresses : il se replie sur la sienne (ports.conf et VirtualHost). Chaque serveur sa porte, chaque porte son rôle.

Notion 4

Observer sa cache

sudo varnishstat
# cache_hit contre cache_miss : le rendement de votre cache
sudo varnishtop
# le palmares des URL les plus demandees
sudo systemctl restart varnish.service
# la purge totale : cache vide, tout redevient un miss

Le rapport hits sur miss est le bulletin de santé de la cache : un site vitrine bien mis en cache dépasse facilement 90 % de hits.

Notion 5 · Le piège

Tout ne se met pas en cache

À retenir

Avant de passer au laboratoire

Au laboratoire : varnish30 s'installe en avant de http20, WordPress apprend sa nouvelle adresse, et le test de charge de la partie 3 devrait faire fondre le temps moyen de réponse. Les chiffres le diront.

Version de départ · ce diaporama va s'enrichir