Cet article traite de Varnish 4.1 sur Debian Jessie.
Varnish est un revers Proxy qui permet de soulager vos serveurs, et d’accélérer le temps de chargement de la page pour vos clients.
Pour mieux comprendre, un petit schéma issu de Wikitwist
Voici un Google Slides que j’ai réalisé pour présenter Varnish aux collègues et que je vous partage.
Installation de Varnish
apt-get install apt-transport-https curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add - echo "deb https://repo.varnish-cache.org/debian/ wheezy varnish-4.1" >> /etc/apt/sources.list.d/varnish-cache.list apt-get update apt-get install varnish
Configuration du deamon Varnish
Il faut maintenant éditer la configuration du deamon de Varnish. En fonction de votre système il se trouve soit dans /etc/default/varnish ou dans /etc/systemd/system/varnish.service Dans ce fichier il faut éditer respectivement soir la variable DAEMON_OPTS soit la variable ExecStart .
Il faut définir le port d’écoute sur 80, et j’ai ajouté deux paramètres (fetch_maxchunksize, http_max_hdr).
ExecStart="-a :80 \ -T localhost:6000 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -p fetch_maxchunksize=64k \ -p http_max_hdr=256 \ -s malloc,1G"
Configurer Varnish
Le fichier /etc/varnish/default.vcl contient toutes les règles de cache, la déclarations des backends…
Varnish appelle backend les serveurs Web. Il est possible de définir un ou plusieurs backends par serveur Varnish.
Il faut éditer le bloc backend, dans lequel il faut définir le nom du server et le port sur lequel va tourner Apache (ou même nginx). Il faut changer le port que vous souhaitez utiliser, par défaut il s’agit du port 8080
backend default { .host = "127.0.0.1"; .port = "8080"; }
Il faut maintenant configurer Apache pour qu’il écoute sur le bon port.
Configuration Apache
Varnish écoute sur le port 80 il faut donc changer le port d’écoute d’Apache en éditant le fichier /etc/apache2/ports.conf
Et remplacez les lignes
NameVirtualHost *:80 Listen 80
par
NameVirtualHost *:8080 Listen 8080
Modifier également les VirtualHost d’apache en remplacant le port 80 par 8080. Les fichiers sont situés dans /etc/apache2/sites-enabled/
<VirtualHost *:8080>
Lancement
Service apache2 restart service varnish restart
A ce stade si vous accéder à l’url de votre site, celui ci répondra via Varnish.
Toutes la configuration Varnish que j’utilise et que je vais décrire au travers de divers articles se trouve ici.
Liste des articles :
- Configuration et explication des subroutines de Varnish
- Configuration avancée de Varnish : Mutli-domaines et cookies
- Varnish : header Vary et gestion du cache en fonction du device
- Varnish et WordPress : code vcl => à venir
- Varnish et WordPress récupérer la réelle adresse IP de vos visiteurs pour les commentaires => à venir
- Varnish gestion de la purge et ban de cache => à venir
- Varnish et le healthcheck de vos backend => à venir
Références
https://www.varnish-cache.org/installation/debian