Pour accélérer un site web, la mise en cache HTTP fait gagner un facteur 10 sur le temps de réponse.
Varnish Cache est un proxy HTTP rapide qui accélère la livraison des contenus.
Voici comment l'installer, le configurer et régler ses paramètres.
Plan de l'article
- Présentation de Varnish Cache
- Installation de Varnish
- Configuration de base
- Optimisations avancées
- Conclusion
Présentation de Varnish Cache
- Proxy inverse HTTP : placé devant le serveur web (Apache, Nginx).
- Mise en cache des pages : livre le contenu sans interroger le serveur en permanence.
- Gain de performance énorme : réduit la charge du serveur et raccourcit le temps de réponse.
Installation de Varnish
Sous Debian/Ubuntu :
sudo apt update
sudo apt install varnish
Sous CentOS/RHEL :
sudo dnf install -y https://repo.varnish-cache.org/redhat/varnish-7.5.el9.x86_64.rpm
sudo dnf install -y varnish
Le service s'exécute sur le port 6081 par défaut.
Configuration de base
Le fichier principal est /etc/varnish/default.vcl.
Exemple de configuration pour mettre Varnish devant Apache :
vcl 4.0;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.url ~ "^/admin") {
return (pass);
}
}
backend: définit le serveur web en arrière-plan.vcl_recv: exclut certaines URL du cache (ici/admin).
Optimisations avancées
- Augmenter la taille du cache mémoire via un override systemd :
sudo mkdir -p /etc/systemd/system/varnish.service.d
sudo tee /etc/systemd/system/varnish.service.d/override.conf << 'EOF'
[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -s malloc,1G
EOF
sudo systemctl daemon-reload
sudo systemctl restart varnish
- Purger le cache quand nécessaire :
varnishadm ban "req.url ~ /"
- Surveiller les performances :
varnishstat
Conclusion
Avec Varnish, vous accélérez vos applications web et encaissez plus de trafic sans ajouter de serveur. Placé devant Nginx ou Apache, il réduit la charge backend et raccourcit le temps de réponse.
Comparez l'alternative Nginx + Varnish, le caching natif Nginx ou le caching Redis pour un choix adapté à votre infrastructure.


