Cache Varnish

Présentation

Varnish est un accélérateur Web qui met en cache du contenu dit “statique” pour le délivrer plus rapidement sur le navigateur de l'internaute lorsque celui-ci visite de nouveau ce même contenu.

Par défaut, ce contenu statique est mis en cache pendant 10 minutes maximum lors d'un premier appel et est renouvelé pour la même durée à chaque nouvelle requête après ce délai imparti. Ce cache est partagé pour l'ensemble des internautes.

Le contenu statique correspond aux fichiers se terminent par les extensions suivantes :

.(jpg|jpeg|png|gif|bmp|swf|ico|ttf|ogg|class|obj|sha|lang|mqo|jar|info|dat)

Explication du fonctionnement

Lorsqu'un visiteur accède à un site, les fichiers statiques qui n'ont pas encore été mis en cache ou ceux qu'ils l'ont été il y a plus de 10 minutes sont remis en cache et délivré au visiteur comme habituellement.

Imaginons que ce visiteur navigue sur ce site, il vas alors généralement revisiter ce même contenu statique à chaque page (feuille de styles, images, etc …) et ce contenu récurrent vas lui être délivré encore plus rapidement car il se trouve dans le cache du serveur “frontal” à la place du serveur Web. L'affichage des pages sera alors plus rapide.

Quand un autre visiteur visite le même site, il vas en fait réutiliser le cache de l'autre visiteur et accéder au site aussi rapidement que le premier visiteur. De ce fait, la charge des appels vers le contenu statique n'augmente pas proportionnellement avec le nombre de visiteur.

Avantages

  • Chargement des pages web plus rapides
  • Diminution de la charge du serveur Web

Inconvénients

  • Des statistiques Awstats moins précises pour le contenu statique
  • La modification d'un contenu statique est visible au maximum 10 minutes après sa modification.

Mais ce ne sont pas vraiment des inconvénients vu qu'il est possible de désactiver le cache Varnish.

Modifier le comportement du cache WEB Varnish

désactiver le cache Varnish tout en définissant le TTL du cache de l'internaute sur son navigateur

Mettre en cache les images, les feuilles de styles et les scripts JavaScript sur le navigateur de l'internaute pendant 1 semaine :

<IfModule mod_headers.c>
  <FilesMatch "\.(css|js|gif|png|jpg|jpeg)$">
    Header set cache-control "max-age=302400"
    </FilesMatch>
  </IfModule>

désactiver le cache Varnish ainsi que le cache du navigateur de l'internaute

Cette pratique est non recommandé dans un milieu autre que de développement.

Si on développe son site Internet directement sur son espace FTP, il peut être assez irritant de devoir attendre 10 minutes après chaque modification d'un contenu statique pour voir la nouvelle version. Dans ce cas, il est possible de ne pas mettre en cache un contenu statique.

Cas pratique :

On souhaite désactiver le cache Varnish pour les pages html/htm/css/js, il suffit alors d'inclure dans un fichier .htaccess ceci :

<IfModule mod_headers.c>
  <FilesMatch "\.(html|htm|css|js)$">
    Header set Cache-Control: "no-cache"
    </FilesMatch>
  </IfModule>

Il existe également une autre parade :

Si vous travaillez directement sur votre site et que vous ne souhaitez pas utiliser le cache ni attendre la mise à jour de votre fichier dans les 10 minutes, vous pouvez ajouter le paramètre “?” à l'appel de votre fichier, par exemple : /styles.css?

PS: Le mieux est tout de même de développer son site sur son propre ordinateur avant de l'envoyer sur le serveur Web de production. La désactivation du cache réduit les performances de votre site alors pensez à le réactiver lorsque votre site n'est plus en développement.

Graphiques du service

FrontWEB IPv4

FrontWEB IPv6

 
cache-varnish.txt · Dernière modification: 2015/03/03 15:11 par elodie
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki