Guide

Configurer Varnish pour Magento 2, étape par étape.

Cache pleine page dans Varnish : basculez Magento dessus, générez le VCL, placez Varnish entre nginx et la boutique, et vérifiez que les pages viennent du cache. Checked on 5 nov. 2026.

Step 1Magento

Basculez le cache pleine page sur Varnish

Dans l'admin, c'est dans Stores, Configuration, Advanced, System, Full Page Cache, Caching Application. En ligne de commande, c'est un seul réglage :

On your server

bin/magento config:set system/full_page_cache/caching_application 2

1 est le cache intégré, 2 est Varnish.

Step 2Magento

Générez le VCL depuis Magento

Magento génère une configuration Varnish qui connaît ses cache tags et ses requêtes de purge. Faites pointer le backend vers le port où nginx sert la boutique, et n'autorisez les purges que depuis le serveur lui-même.

On your server

bin/magento varnish:vcl:generate --export-version=7 \
  --backend-host=127.0.0.1 --backend-port=8080 \
  --access-list=127.0.0.1 --output-file=/etc/varnish/default.vcl

bin/magento varnish:vcl:generate --help liste les versions d'export proposées par votre version de Magento.

Step 3Magento

Indiquez à Magento où Varnish écoute

Quand un produit ou une page change, Magento envoie une requête de purge à Varnish. Il a besoin de l'adresse et du port sur lesquels Varnish écoute.

On your server

bin/magento setup:config:set --http-cache-hosts=127.0.0.1:6081

Step 4Serveur

Placez Varnish entre nginx et la boutique

Varnish ne parle pas HTTPS. La chaîne habituelle : nginx sur le 443 termine le TLS et transmet la requête à Varnish sur le 6081, et Varnish interroge un second server block nginx sur le 8080 qui exécute PHP. Redémarrez Varnish après avoir modifié le VCL.

nginx et Varnish

# nginx, the public server block (443)
location / {
    proxy_pass http://127.0.0.1:6081;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# then
systemctl restart varnish

Step 5Vérifier

Vérifiez que les pages viennent du cache

Ouvrez deux fois une page catégorie et regardez le compteur de hits augmenter, ou suivez une requête à travers Varnish. Ensuite, ne videz que le cache de pages quand c'est nécessaire.

On your server

varnishstat -1 | grep -E 'cache_hit |cache_miss '
varnishlog -g request -q 'ReqURL eq "/"'
bin/magento cache:flush full_page

Un compteur cache_hit qui continue d'augmenter lors de visites répétées signifie que Varnish sert les pages.

Vos questions, nos réponses.

Support ShopWhizzy Magento depuis 2008

Contactez-nous
N'importe quel port libre ; 6081 est le plus courant. nginx lui envoie les requêtes, et Magento envoie ses requêtes de purge à la même adresse.
Ils ne font pas le même travail. Varnish sert des pages entières depuis la mémoire avant même que PHP démarre ; Redis ou Valkey contient le cache et les sessions de Magento. La plupart des boutiques rapides utilisent les deux.
Les pages panier, checkout et compte sont privées, donc Magento les marque comme non cachables. Des blocs marqués cacheable="false" dans un layout rendent toute la page non cachable, une cause fréquente de boutiques lentes.
Oui. Chaque offre Magento fait tourner Varnish dès la première minute, avec le VCL généré pour votre boutique.

Amenez votre boutique. Nous la migrons gratuitement.

Choisissez une offre, choisissez une plateforme, et votre boutique est en ligne avant que le café ne refroidisse.

Prix TTC. Support serveur inclus dans chaque offre.