Guía

Configura Varnish para Magento 2, paso a paso.

Caché de página completa en Varnish: cambia Magento a Varnish, genera la VCL, coloca Varnish entre nginx y la tienda y comprueba que las páginas salen de la caché. Checked on 5 nov 2026.

Step 1Magento

Cambia la caché de página completa a Varnish

En el admin está en Stores, Configuration, Advanced, System, Full Page Cache, Caching Application. Desde la línea de comandos es un solo ajuste:

On your server

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

1 es la caché integrada, 2 es Varnish.

Step 2Magento

Genera la VCL desde Magento

Magento genera una configuración de Varnish que conoce sus cache tags y peticiones de purga. Apunta el backend al puerto donde nginx sirve la tienda y permite purgas solo desde el propio servidor.

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 muestra las versiones de exportación que ofrece tu versión de Magento.

Step 3Magento

Indica a Magento dónde escucha Varnish

Cuando cambia un producto o una página, Magento envía una petición de purga a Varnish. Necesita la dirección y el puerto en los que escucha Varnish.

On your server

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

Step 4Servidor

Coloca Varnish entre nginx y la tienda

Varnish no habla HTTPS. La cadena habitual es: nginx en el 443 termina el TLS y pasa la petición a Varnish en el 6081, y Varnish pide la página a un segundo server block de nginx en el 8080 que ejecuta PHP. Reinicia Varnish después de cambiar la VCL.

nginx y 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 5Comprobar

Comprueba que las páginas salen de la caché

Abre una página de categoría dos veces y mira cómo sube el contador de hits, o sigue una petición a través de Varnish. Después vacía solo la caché de página cuando lo necesites.

On your server

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

Un contador cache_hit que sigue subiendo en visitas repetidas significa que Varnish está sirviendo las páginas.

Preguntas, respondidas.

Soporte de ShopWhizzy Magento desde 2008

Habla con nosotros
Cualquier puerto libre; el 6081 es el habitual. nginx le envía las peticiones, y Magento envía sus peticiones de purga a la misma dirección.
Hacen trabajos distintos. Varnish sirve páginas completas desde memoria antes de que arranque PHP; Redis o Valkey guardan la caché y las sesiones de Magento. La mayoría de las tiendas rápidas usan ambos.
Las páginas del carrito, del checkout y de la cuenta son privadas, así que Magento las marca como no cacheables. Los bloques marcados con cacheable="false" en un layout hacen que toda la página no se pueda cachear, una causa habitual de tiendas lentas.
Sí. Todos los planes de Magento ejecutan Varnish desde el primer minuto, con la VCL generada para tu tienda.

Trae tu tienda. La migramos gratis.

Elige un plan, elige una plataforma y tu tienda estará online antes de que se enfríe el café.

Precios con IVA incluido. Soporte del servidor en todos los planes.