Accueil du site > Varnish > À quoi sert Varnish ?

À quoi sert Varnish ?

vendredi 11 mars 2011, par Fil

Utilisé par des sites parmi les plus importants de la planète, Varnish est un ingrédient essentiel d’une bonne cuisine de serveur Web.

Tout responsable de site Internet connaît le dilemme : quand il n’y a personne pour le visiter, le site marche très bien. Dès qu’il a du succès, il plante ! La difficulté s’appelle l’effet slashdot, du nom d’un webzine qui, lorsqu’il référence un site, y envoie tellement de visiteurs que le site s’effondre sous le poids des visites.

Pour essayer de contrer ce problème, plusieurs parades ont été inventées : des « caches » plus ou moins « statiques » permettent au serveur Apache de ne pas lancer de script PHP pour calculer la même page pour chaque visiteur. Des répartiteurs de charge (load balancers) permettent d’aiguiller les visiteurs vers plusieurs machines physiques, etc.

L’approche de Varnish (un logiciel libre disponible sur www.varnish-cache.org) est celle d’un « proxy inverse » : c’est un serveur qui écoute les requêtes en provenance des clients, et les transmet au serveur Web applicatif proprement dit (Apache). Au passage, s’il voit que plusieurs visiteurs sollicitent la même ressource, il la demande une seule fois et la transmet ensuite à tous les visiteurs en même temps ; et s’il est autorisé à mémoriser une réponse, il ne la demande plus au serveur, pour un temps donné.

Varnish peut être configuré pour, en fonction de certains paramètres (URL de la ressource demandée, présence de tel cookie chez le visiteur, adresse IP du visiteur, etc.), demander la ressource à différents serveurs applicatifs, que dans son jargon il appelle « backends ».

Voici une petite vidéo qu’a publié la société qui s’est construite pour développer Varnish.

En bonus, quand Apache est planté, Varnish peut fournir la ressource demandée si elle est en cache, ou à l’inverse renvoyer une page informative au visiteur. C’est ce qui m’est arrivé tout à l’heure... Visiblement ça a plu à certains utilisateurs, qui exigent maintenant de savoir où est passée la si jolie page d’erreur (photo de baroug) !

Dans de prochains articles, j’indiquerai comment installer et configurer Varnish pour en tirer le maximum avec SPIP.

1 Message

  • À quoi sert Varnish ? Le 12 mars 2011 à 08:26 , par Beurt

    Merci !

    Vivement la suite, je me demande comment optimiser tout ça avec le cache de Spip (voire avec memoization)...