Dans un article précédent, je vous avais présenté la solution que j’utilisais pour profiter du cache de Varnish afin de combler les manques d’un proxy sur lequel je n’avais pas forcément la main.

Aujourd’hui j’utilise toujours cette méthode, même à mon chez moi. C’est bien pratique. J’ai cependant rencontré quelques petits soucis en passant sur la Wheezy. C’est donc l’occasion de faire une petite mise à jour sur le sujet…

Un segfault avec Varnish 3.0.2s

J’ai eu droit à un joli segfault avec la version 3.0.2s de Varnish en passant sous Wheezy. Je n’ai pas cherché le comment du pourquoi sachant que la 3.0.3s était disponible et que ce problème ne se reproduit pas avec cette version. Si vous avez une erreur du style varnishd[26677]: segfault at 0 ip 00000000004159f7 sp 00007fff1e7d77c0 error 4 in varnishd[400000+7d000], envisagez une mise à jour en 3.0.3s !

Installer Varnish 3.0.3s sur Wheezy

La Wheezy est en RC1, j’en profite pour commencer mes tests pour être prêt le jour J. Sur une Wheezy fraichement installée, voici la procédure pour installer Varnish 3.0.3s :

  • Installez les pré-requis :
apt-get update
apt-get install build-essential autogen automake pkg-config libtool libpcre3-dev python-docutils libncurses5-dev
  • Récupérez l’archive de Varnish avec le patch streaming sur Github.
cd /usr/local/src
wget https://github.com/mbgrydeland/varnish-cache-streaming/archive/streaming-3.0.3.zip
unzip streaming-3.0.3.zip
cd varnish-cache-streaming-streaming-3.0.3
  • Lancez la compilation de Varnish :
./autogen.sh
./configure --prefix=/usr/local --localstatedir=/var --sysconfdir=/etc
make && make install && ldconfig
  • Il va manquer ce répertoire pour la configuration que je vais vous présenter :
mkdir /var/lib/varnish

Installer tinyproxy

Rien à dire tellement c’est simple : apt-get install tinyproxy. Tinyproxy sera donc le backend de mon Varnish. Il suffit juste de configurer tinyproxy pour écouter en localhost sur le port de votre choix. Il y a un exemple de configuration dans le paragraphe suivant…

Configuration

Rien de particulier par rapport à mon article précédent, la configuration de Varnish ne change pas. Je fais fonctionner sur le même serveur (LXC) Varnish et Tinyproxy. Tinyproxy écoute seulement sur localhost et Varnish utilise donc localhost comme backend. J’ai repris le script d’init du paquet Varnish de la Wheezy. Tous ces fichiers de configuration sont sur Github.