Varnish cache es un acelerador de caché gratuito y de código abierto que se utiliza para acelerar su sitio web mediante el almacenamiento en caché del contenido en la memoria. Es extremadamente rápido y reduce el tiempo de carga de la página, lo que ayuda con sus SERP y mejora la experiencia del usuario. Es utilizado por muchas organizaciones, incluidas Facebook, Twitter y Wikipedia. Varnish se encuentra entre Nginx y los clientes que reciben solicitudes de los clientes y las reenvía al backend. Esto mejorará el rendimiento del servidor web porque Varnish servirá contenido desde la memoria.
En este tutorial, le mostraré cómo instalar Varnish 7 frente a Nginx en Rocky Linux 8.
Requisitos
- Un servidor que ejecuta Rocky Linux 8.
- Se configura una contraseña raíz en el servidor.
Instalar Varnish 7
Antes de comenzar, deberá deshabilitar los módulos de barniz existentes de su sistema. Puede desactivarlo ejecutando el siguiente comando:
dnf module disable varnish
Debería ver el siguiente resultado:
============================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================== Disabling modules: varnish Transaction Summary ============================================================================================================================================== Is this ok [y/N]: y Complete!
Luego, instale el repositorio EPEL usando el siguiente comando:
dnf install epel-release -y
Luego, agregue el repositorio de Varnish Cache 7 a su sistema usando el siguiente comando:
curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash
Una vez agregado el repositorio, instale Varnish 7 usando el siguiente comando:
dnf install varnish -y
Después de la instalación exitosa, verifique la información sobre Varnish con el siguiente comando:
rpm -qi varnish
Debería ver el siguiente resultado:
Name : varnish Version : 7.0.2 Release : 1.el8 Architecture: x86_64 Install Date: Sunday 13 February 2022 06:24:35 AM UTC Group : System Environment/Daemons Size : 8907085 License : BSD Signature : (none) Source RPM : varnish-7.0.2-1.el8.src.rpm Build Date : Wednesday 12 January 2022 02:25:34 PM UTC Build Host : 7fc509e75620 Relocations : (not relocatable) URL : https://www.varnish-cache.org/ Summary : High-performance HTTP accelerator Description : This is Varnish Cache, a high-performance HTTP accelerator.
Administrar servicio de barniz
Después de instalar Varnish, inicie el servicio Varnish y habilítelo para que se inicie al reiniciar el sistema usando el siguiente comando:
systemctl start varnish
systemctl enable varnish
Puede verificar el estado del Barniz con el siguiente comando:
systemctl status varnish
Obtendrá el siguiente resultado:
? varnish.service - Varnish Cache, a high-performance HTTP accelerator Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:24:56 UTC; 6s ago Process: 2555 ExecStart=/usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c> Main PID: 2556 (varnishd) Tasks: 217 Memory: 104.5M CGroup: /system.slice/varnish.service ??2556 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m ??2567 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m Feb 13 06:24:55 rockylinux systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Feb 13 06:24:55 rockylinux varnishd[2556]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c Feb 13 06:24:55 rockylinux varnishd[2556]: Platform: Linux,4.18.0-348.12.2.el8_5.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Feb 13 06:24:55 rockylinux varnishd[2556]: Child (2567) Started Feb 13 06:24:56 rockylinux varnishd[2556]: Child (2567) said Child starts Feb 13 06:24:56 rockylinux systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.
Configurar barniz
De forma predeterminada, Varnish escucha en el puerto 6081. Aquí, usaremos Varnish para aceptar conexiones HTTP entrantes. Por lo tanto, deberá configurar Varnish para escuchar en el puerto 80. Puede hacerlo editando /usr/lib/systemd/system/varnish.service archivo:
nano /usr/lib/systemd/system/varnish.service
Cambie el puerto 6081 a 80 como se muestra a continuación:
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g
Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, reinicie el servicio Varnish para aplicar los cambios:
systemctl restart varnish
A continuación, verifique el puerto de escucha de Varnish con el siguiente comando:
ss -antpl | grep varnish
Debería ver el puerto de escucha de Varnish en el siguiente resultado:
LISTEN 0 10 127.0.0.1:46093 0.0.0.0:* users:(("varnishd",pid=2819,fd=13)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=2830,fd=6),("varnishd",pid=2819,fd=6)) LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("cache-main",pid=2830,fd=9),("varnishd",pid=2819,fd=9)) LISTEN 0 10 [::1]:33963 [::]:* users:(("varnishd",pid=2819,fd=12)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=2830,fd=7),("varnishd",pid=2819,fd=7)) LISTEN 0 128 [::1]:8443 [::]:* users:(("cache-main",pid=2830,fd=8),("varnishd",pid=2819,fd=8))
Configure Nginx para que funcione con Varnish
En esta sección, instalaremos Nginx y lo configuraremos para que funcione con Varnish. Primero, instale el paquete Nginx con el siguiente comando:
dnf install nginx -y
Después de instalar Nginx, deberá editar el archivo de configuración de Nginx y cambiar el puerto de escucha predeterminado de Nginx de 80 a 8080 .
Edite el archivo de configuración principal de Nginx con el siguiente comando:
nano /etc/nginx/nginx.conf
Encuentra las siguientes líneas:
listen 80 default_server; listen [::]:80 default_server;
Y las reemplazó con las siguientes líneas:
listen 8080 default_server; listen [::]:8080 default_server;
Guarde y cierre el archivo cuando haya terminado, luego inicie el servicio Nginx para aplicar los cambios:
systemctl start nginx
También puede verificar el estado de Nginx usando el siguiente comando:
systemctl status nginx
Obtendrá el siguiente resultado:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:29:02 UTC; 8s ago Process: 5627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 5626 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 5624 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 5629 (nginx) Tasks: 2 (limit: 11412) Memory: 6.7M CGroup: /system.slice/nginx.service ??5629 nginx: master process /usr/sbin/nginx ??5630 nginx: worker process Feb 13 06:29:02 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server... Feb 13 06:29:02 rockylinux nginx[5626]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Feb 13 06:29:02 rockylinux nginx[5626]: nginx: configuration file /etc/nginx/nginx.conf test is successful Feb 13 06:29:02 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 13 06:29:02 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.
Verificar Varnish Cache
En este punto, Varnish está instalado y configurado con el servidor web Nginx. Ahora es el momento de probar el caché Varnish.
Ejecute el siguiente comando para verificar el caché Varnish:
curl -I http://your-server-ip
Si todo está bien, obtendrá el siguiente resultado:
HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Sun, 13 Feb 2022 06:30:06 GMT Content-Type: text/html Content-Length: 3429 Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT ETag: "60c1d6af-d65" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/7.0) Accept-Ranges: bytes Connection: keep-alive
Conclusión
¡Felicidades! ha instalado correctamente Varnish con Nginx en Rocky Linux 8. Ahora puede implementar Varnish en el entorno de producción para acelerar el rendimiento de su sitio web. Siéntase libre de preguntarme si tiene alguna pregunta.