Accueil du site > Varnish > Installer Varnish

Installer Varnish

dimanche 13 mars 2011, par Fil

Pour commencer, nous allons installer Varnish sur un port secondaire (6081), et laisser le port 80 à Apache. Une fois que ça tournera correctement, et que la configuration sera satisfaisante, il sera temps d’inverser.

On va d’abord chercher les sources au format tgz : http://www.varnish-cache.org/releases/varnish-cache-2.1.5, et on compile.

# wget http://repo.varnish-cache.org/source/varnish-2.1.5.tar.gz
# tar -xzf varnish-2.1.5.tar.gz
# cd varnish-2.1.5
# ./configure
# make
# sudo make install

Cela fait, le démon varnishd est installé dans /usr/local/sbin/ et les scripts d’administration se trouvent dans /usr/local/bin/varnishadm.

On commence à éditer /etc/varnish/default.conf :

backend default {
    .host = "127.0.0.1";
    .port = "80";
}

On lance ensuite le démon à la main :

# /usr/local/sbin/varnishd -f /etc/varnish/default.vcl -a127.0.0.1:6081 -S /etc/varnish/secret -Tlocalhost:6082 -s malloc,100M

(Ici, avec -s malloc,100M on affecte 100Mo de RAM à Varnish ; au passage en production, on pourra lui attribuer 1Go ou même plus. Attention, si on n’utilise pas malloc, on se retrouve facilement à remplir son disque dur, dans des fichiers situés dans les répertoires /usr/local/var/varnish/*.)

Désormais varnishd écoute le port 6081, et va chercher les ressources demandées sur le port 80, où se trouve Apache.

Sur Debian, on va créer un fichier de configuration pour le démarrage du démon. Ce fichier se trouve dans /etc/default/varnish

Et on l’appelle avec la commande /etc/init.d/varnish start.

Varnish est installé.

On peut voir nos pages à l’adresse http://URLDUSITE:6081/

Dans les entêtes on observe quelque chose du genre :
X-Varnish: 1234
ou
X-Varnish: 4567 1234

Dans le premier cas, Varnish nous informe qu’il s’agit du 1234e hit qu’il a reçu, et qu’il est allé chercher la ressource sur le backend. Dans le second, il s’agit du 4567e hit, et c’est la ressource qu’il a mise en cache lors du 1234e hit qui a été servie directement, sans appel au backend.

Notre configuration ouvre un port d’administration (localhost:6082), protégé par un secret écrit dans le fichier /etc/varnish/secret
On peut dès lors appeler le script d’administration avec la commande
varnishadm -T localhost:6082 -S /etc/varnish/secret

C’est de là qu’on va piloter les fichiers de configuration.

Pour se faciliter la vie, au moins lors de la mise au point de la configuration, on va adapter ce script http://kristianlyng.wordpress.com/2009/02/18/easy-reloading-of-varnish-vcl/ et le sauvegarder dans /usr/local/bin/varnishreload.

Dès lors on recharge la configuration /etc/varnish/default.vcl après chaque modification du fichier via la commande :
# varnishreload

Dans un prochain article nous verrons comment structurer ce fichier de configuration de manière à l’optimiser pour des sites sous SPIP.

3 Messages de forum

  • sur CentOS Le 17 avril 2011 à 11:10 , par .Gilles

    Pour installer varnish sans passer par les sources, j’ai utilisé la méthode indiquée sur le site de Vanish : http://www.varnish-cache.org/instal...

    Dernier détail, le fichier de config n’est pas dans /etc/default mais dans /etc/sysconfig

  • Installer Varnish Le 23 novembre 2011 à 11:28 , par .Gilles

    Sous Debian Squeeze, la compilation n’installe pas les fichiers dans /etc/init.d ou /etc/varnish.

    Plutôt que de les refaire soit même, je suis finalement passé par le dépôt officiel (la version par défaut n’est pas la dernière)

    curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
    echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-2.1" >> /etc/apt/sources.list
    apt-get update
    apt-get install varnish

    Il ne reste ensuite plus qu’à suivre la doc (elle mentionne un fichier "infora.vcl" qu’il faut remplacer par son fichier de config - en principe "default.vcl")

    • Installer Varnish Le 23 novembre 2011 à 11:34 , par Fil

      tu as raison sur le nom du fichier de conf, c’est plus clair avec default.vcl (bien qu’il soit écrit au-dessus qu’il est mieux de le modifier, ce que j’ai fait en réalité).