Debian: installer et configurer Varnish6 avec apache

  • Installer les paquets nécessaires pour compiler Varnish

apt-get install make automake autotools-dev libedit-dev libjemalloc-dev libncurses-dev libpcre3-dev libtool pkg-config python-docutils python-sphinx

  • Télécharger Varnish

wget http://varnish-cache.org/_downloads/varnish-6.0.0.tgz

  • Extraire les fichiers

tar xvzf varnish-6.0.0.tgz

  • Accéder au répertoire  varnish-6.0.0 et lancer les commandes:

cd varnish-6.0.0

sh autogen.sh

sh configure

make

make install

  • Créer le répertoire varnish

mkdir /etc/varnish

mv varnish-6.0.0/etc/example.vcl /etc/varnish/default.vcl

  • Configuration Apache:

Modifier le port 80 par 8080:

nano /etc/apache2/ports.conf

Ajouter:

Listen *:8080
NameVirtualHost *:8080

Modifier les vhost configurés avec le port 80

Ajouter: <VirtualHost *:8080> au lieu de <VirtualHost *:80>

  • Lancer Varnish:

/usr/local/sbin/varnishd -a :80 -b localhost:8080

(varnishd -V pour connaitre la version installée)
varnishd (varnish-6.0.0 revision a068361dff0d25a0d85cf82a6e5fdaf315e06a7d)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2015 Varnish Software AS

  • Redémarrer apache

service apache2 restart

  • Vérifier les ports:

ss -ntpl

LISTEN 0 0 :::80 :::* users:((“cache-main”,13648,5),(“varnishd”,13638,5))
LISTEN 0 0 :::8080 :::* users:((“apache2”,13453,4),(“apache2”,3288,4),(“apache2”,3287,4),(“apache2”,3286,4),(“apache2”,3285,4),(“apache2”,3284,4),(“apache2”,3211,4)

  • Tester Varnish

curl -I localhost
HTTP/1.1 401 Authorization Required
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 325
Content-Type: text/html; charset=iso-8859-1
X-Varnish: 5
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Connection: keep-alive

  • Configuration Apache pour les sites avec des certificats SSL

(Varnish ne prend pas en charge les connexions TLS/SSL)

activer les modules suivants :

a2enmod headers proxy  proxy_html proxy_http

# apache2ctl -M

proxy_module (shared)
proxy_html_module (shared)
proxy_http_module (shared)

headers_module (shared)

Ajouter les lignes suivantes aux fichiers vhost (port 443):

ProxyPreserveHost On
ProxyPass / http://127.0.0.1:80/
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Proto "https”"

Redémarrer le service apache:

service apache2 restart

Articles liés