Configurar VARNISH en Magento 2: ALMACENAMIENTO en caché
Aprende cómo CONFIGURAR Varnish para ALMACENAR en caché sitios Magento 2 🚀✔️. Domina la optimización web y mejora la velocidad de tu e-commerce. ¡Descúbrelo ya!
Cómo configurar Varnish para almacenar en caché los sitios Magento 2

servidor de barniz es una aplicación de almacenamiento en caché especial. Podrías instalarlo antes que cualquier servidor web y aceleraría significativamente el tiempo hasta el primer byte (TTFB).
Varnish es una solución de almacenamiento en caché recomendada para sitios web de comercio electrónico Magento 2.
En este artículo te mostraré cómo configurarlo y configurarlo correctamente. Usaremos una máquina Debian 12 Bookworm como referencia, pero las instrucciones podrían aplicarse a un sistema operativo diferente.
El barniz es una gran herramienta para optimizar la velocidad de Magento 2. Este es un tutorial para mostrarle cómo optimizar la velocidad de Magento con Varnish. Aunque existen muchos más métodos y formas de optimizar la velocidad de tu Magento 2. Algunos servicios como el vinculado anteriormente hacen todas esas optimizaciones por usted, no solo configuran Varnish, que es solo la punta del iceberg.
Usaré Nginx y Magento 2.4.6p3 y serviré todo a través de HTTPS.
Índice de contenidos
Instalación en Debian
En primer lugar, necesitamos instalar algunos paquetes:
$ apt-get update
$ apt-get install varnish
Una vez que se complete la instalación, barniz escuchará en un puerto predeterminado 6081:
$ ps aux | grep varnish
vcache 2767358 0.1 0.0 18828 10936 ? SLs 17:44 0:00 /usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
vcache 2767373 0.6 0.2 292948 142080 ? SLl 17:44 0:00 /usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
varnish+ 2767589 0.2 0.0 86152 1280 ? Ss 17:44 0:00 /usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log -D -P /run/varnishncsa/varnishncsa.pid
Conectándolo a Magento 2
Necesitamos realizar algunos cambios de configuración en nuestra tienda de comercio electrónico:

Vaya al panel backend > Tiendas > Configuración > Avanzado > Sistema > Caché de página completa y configure Aplicación de almacenamiento en caché en Barniz (recomendado). Haga clic en un botón Guardar.
Luego expandiremos la pestaña Configuración de Varnish y exportaremos el archivo VCL para su versión. Nuestra versión es la 7:
$ varnishd -V
Varnishd (varnish-7.1.1)
Estamos ejecutando Magento 2.4.6p3 que admite Varnish 7 aunque no hay ningún botón Varnish 7 🙂


Continuaremos y descargaremos un archivo VCL de Varnish 6.
Importante: En el archivo descargado necesitamos hacer un cambio. Alrededor de la línea 13 cambiaremos una URL de sonda:
.port = "8080";
.first_byte_timeout = 600s;
.probe = {
- .url = "/pub/health_check.php";
+ .url = "/health_check.php";
.timeout = 2s;
Sin ese cambio, Varnish solicitará pub/health_check.php, obtendrá 404 (página no encontrada), pensará que Magento no está disponible y mostrará una página de error 503 como esta:


Continúe, haga ese cambio y guarde el archivo como barniz6_edited.vlc.
A continuación, reemplazamos el VCL predeterminado con nuestro archivo personalizado y reiniciamos Varnish:
$ cp varnish6_edited.vcl /etc/varnish/default.vcl
$ /etc/init.d/varnish restart
Ahora el servidor Varnish se está ejecutando y escuchando en el puerto 6081 (de forma predeterminada) las solicitudes entrantes.
Configuración de Nginx
Un sitio de comercio electrónico debe estar bajo HTTPS en todo momento. Vanish no puede escuchar en el puerto 443, por lo que debemos mantener un servidor web que acepte solicitudes.
Un diagrama de nuestra configuración será algo como esto:
Usuario -> Servidor web (nginx en nuestro caso) escuchando 443 -> Varnish -> Magento (ejecutándose como un host nginx virtual en el puerto 8080)
Importante: solicitaremos Magento a través del puerto 8080, pero debemos hacerle creer que es 443 (SSL). Por ese motivo pasaremos una variable especial HTTPS = on:
fastcgi_param HTTPS on
Este paso es importante, sin esa variable obtendrás un error de redireccionamiento indefinido como este:


Tomemos un archivo nginx.conf.sample predeterminado que viene con cada instalación de Magento 2 y edítelo alrededor de la línea 207 (agregamos una variable HTTPS):
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=756M \n max_execution_time=18000";
+ fastcig_param HTTPS on;
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Ahora lo guardamos en nginx.conf.edited.
A continuación configuramos un servidor Nginx:
# This is the main entry, a browser request comes here and gets forwarded to Varnish
server {
listen 443 http2;
ssl on;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/latest-cert.crt;
ssl_certificate_key /etc/nginx/ssl/www-new.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:6081;
proxy_http_version 1.1;
}
}
# Here comes a request from Varnish if a page wasn’t found in its cache. We need to run
# Magento code and render a page. nginx.conf.edited file is the same file we edited above.
server {
listen 8080;
port_in_redirect off;
set $MAGE_ROOT /var/yoursitefolder;
Include /var/yoursitefolder/nginx.conf.edited;
}
Ahora reiniciemos nginx y todo debería funcionar.
$ /etc/init.d/nginx restart
Confirmación
Verifiquemos que Varnish esté almacenando en caché nuestras páginas.
Abra Google Chrome, solicite una página de inicio varias veces, vaya a Herramientas para desarrolladores/Red y verifique los encabezados de la página. Deberías ver un resultado:


También puede iniciar el registro de barniz y ver las solicitudes de páginas:
$ varnishlog
…..
* << Request >> 3964957
- Begin req 3964956 rxreq
- Timestamp Start: 1708119375.564378 0.000000 0.000000
- Timestamp Req: 1708119375.564378 0.000000 0.000000
- VCL_use boot
- ReqStart 127.0.0.1 46430 a0
- ReqMethod GET
- ReqURL /dummypage
Si tiene alguna pregunta, no dude en dejar un comentario o contactarme directamente.
- Todo sobre la compresión GZIP de cPanel
- Revolucionando la atención médica: soluciones tecnológicas para operaciones optimizadas
Te podría interesar...
Más de 15 mejores herramientas gratuitas de generador de Favicon en línea 2024 Cómo instalar WordPress en diferentes idiomas Empleado destacado: Joel Foo Domain Registry Radix lanza Brand Name Spinner, Namify.tech 5 formas en que interactúan CSS y JavaScript que quizás no conozcas - F5 NGINX Management Suite 1.0 ya está disponible Alojamiento de WordPress administrado-Descripción La ventaja de usar PHP y MySQL Las 5 principales tendencias de las pequeñas empresas para 2024
Deja una respuesta Cancelar la respuesta
Lo siento, debes estar conectado para publicar un comentario.