Cómo instalar Varnish 7 para Nginx en Rocky Linux 8

La caché Varnish es un acelerador de caché gratuito y de código abierto que se utiliza para acelerar tu sitio web almacenando el contenido en la memoria. Es extremadamente rápido y reduce el tiempo de carga de la página, lo que ayuda a tus SERPs y mejora la experiencia del usuario. Lo utilizan muchas organizaciones, como Facebook, Twitter y Wikipedia. Varnish se sitúa entre Nginx y los clientes que reciben las peticiones de los clientes y las reenvían al backend. Esto mejorará el rendimiento del servidor web porque Varnish servirá el contenido desde la memoria.

En este tutorial, te mostraré cómo instalar Varnish 7 delante de Nginx en Rocky Linux 8.

Requisitos previos

  • Un servidor con Rocky Linux 8.
  • Una contraseña de root configurada en el servidor.

Instalar Varnish 7

Antes de empezar, tendrás que desactivar los módulos de Varnish existentes en tu sistema. Puedes deshabilitarlo ejecutando el siguiente comando:

dnf module disable varnish

Deberías ver la siguiente salida:

==============================================================================================================================================
 Package                           Architecture                     Version                           Repository                         Size
==============================================================================================================================================
Disabling modules:
 varnish                                                                                                                                     

Transaction Summary
==============================================================================================================================================

Is this ok [y/N]: y
Complete!

A continuación, instala el repositorio EPEL con el siguiente comando:

dnf install epel-release -y

A continuación, añade el repositorio de Varnish Cache 7 a tu sistema utilizando el siguiente comando:

curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash

Una vez añadido el repositorio, instala el Varnish 7 utilizando el siguiente comando:

dnf install varnish -y

Después de la instalación exitosa, verifica la información sobre Varnish con el siguiente comando:

rpm -qi varnish

Deberías ver la siguiente salida:

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.

Gestionar el servicio Varnish

Después de instalar Varnish, inicia el servicio Varnish y permite que se inicie al reiniciar el sistema utilizando el siguiente comando:

systemctl start varnish
systemctl enable varnish

Puedes comprobar el estado de Varnish con el siguiente comando:

systemctl status varnish

Obtendrás la siguiente salida:

? 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 Varnish

Por defecto, Varnish escucha en el puerto 6081. En este caso, utilizaremos Varnish para aceptar conexiones HTTP entrantes. Así que tendrás que configurar Varnish para que escuche en el puerto 80. Puedes hacerlo editando el archivo /usr/lib/systemd/system/varnish.service:

nano /usr/lib/systemd/system/varnish.service

Cambia el puerto 6081 por el 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

Guarda y cierra el archivo y luego recarga el demonio systemd para aplicar los cambios:

systemctl daemon-reload

A continuación, reinicia el servicio Varnish para aplicar los cambios:

systemctl restart varnish

A continuación, verifica el puerto de escucha de Varnish utilizando el siguiente comando:

ss -antpl | grep varnish

Deberías ver el puerto de escucha de Varnish en la siguiente salida:

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))

Configurar Nginx para que funcione con Varnish

En esta sección, instalaremos Nginx y lo configuraremos para que funcione con Varnish. Primero, instala el paquete Nginx con el siguiente comando:

dnf install nginx -y

Después de instalar Nginx, tendrás que editar el archivo de configuración de Nginx y cambiar el puerto de escucha por defecto de Nginx de 80 a 8080.

Edita el archivo de configuración principal de Nginx con el siguiente comando:

nano /etc/nginx/nginx.conf

Busca las siguientes líneas:

	listen       80 default_server;
        listen       [::]:80 default_server;

Y, sustitúyelas por las siguientes líneas:

	listen       8080 default_server;
        listen       [::]:8080 default_server;

Guarda y cierra el archivo cuando hayas terminado y luego inicia el servicio Nginx para aplicar los cambios:

systemctl start nginx

También puedes comprobar el estado de Nginx utilizando el siguiente comando:

systemctl status nginx

Obtendrás la siguiente salida:

? 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 la caché de Varnish

En este punto, Varnish está instalado y configurado con el servidor web Nginx. Ahora, es el momento de probar la caché de Varnish.

Ejecuta el siguiente comando para verificar la caché de Varnish:

curl -I http://your-server-ip

Si todo está bien, obtendrás la siguiente salida:

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

Enhorabuena! has instalado con éxito Varnish con Nginx en Rocky Linux 8.

También te podría gustar...