Présentation et Installation de Varnish

Varnish Cache

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

Varnish Reverse Proxy

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 :

Références

https://www.varnish-cache.org/installation/debian