Búsqueda de sitios web

Cómo instalar Varnish Cache 5.2 para Nginx en CentOS 7


Varnish Cache (también conocido como Varnish) es un acelerador HTTP de alto rendimiento y código abierto diseñado para acelerar servidores web. En nuestros últimos artículos, explicamos cómo configurar Varnish Cache para Apache en CentOS 7 y CentOS 8.

En este artículo, le mostraremos cómo instalar y utilizar Varnish Cache como interfaz para el servidor HTTP Nginx en CentOS 7. Esta guía también debería funcionar en RHEL 7.

Requisitos

  1. Un CentOS 7 con Apache instalado
  2. Un CentOS 7 con una dirección IP estática

Paso 1: Instale el servidor web Nginx en CentOS 7

1. Comience instalando el servidor Nginx HTTP desde los repositorios de software predeterminados de CentOS utilizando el administrador de paquetes YUM de la siguiente manera.

yum install nginx

2. Cuando se complete la instalación, inicie el servicio Nginx por ahora y habilítelo para que se inicie automáticamente al iniciar el sistema.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Ahora modifique las reglas del firewall del sistema para permitir paquetes entrantes en el puerto 80 usando los siguientes comandos.

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

Paso 2: Instale Varnish Cache en CentOS 7

4. Ahora hay paquetes RPM precompilados para la última versión de Varnish Cache 6 (es decir, 6.5 en el momento de escribir este artículo), por lo tanto debe agregar el repositorio oficial de Varnish Cache.

Antes de eso, debe habilitar el repositorio EPEL para instalar varios paquetes de dependencia como se muestra.

yum install -y epel-release

5. A continuación, instale pygpgme, un paquete para manejar firmas GPG y yum-utils, una colección de utilidades útiles que amplían las características nativas de yum de varias maneras.

yum install pygpgme yum-utils

6. Ahora cree un archivo llamado /etc/yum.repos.d/varnishcache_varnish5.repo que contenga la configuración del repositorio a continuación.

vi /etc/yum.repos.d/varnishcache_varnish65.repo

Importante: asegúrese de reemplazar el y 7 en la siguiente configuración con su distribución y versión de Linux:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Ahora ejecute el siguiente comando para actualizar su caché yum local e instalar el paquete de caché de barniz (no olvide aceptar la clave GPG escribiendo y o yes durante la instalación del paquete):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. Después de instalar Varnish Cache, el ejecutable principal se instalará como /usr/sbin/varnishd y los archivos de configuración de Barniz se ubicarán en /etc/barniz/:

  • /etc/varnish/default.vcl: este es el archivo de configuración principal de Barniz, está escrito utilizando el lenguaje de configuración Vanish (VCL).

9. Ahora inicie el servicio de barniz, habilítelo para que se inicie automáticamente durante el inicio del sistema y verifique su estado para asegurarse de que esté funcionando de la siguiente manera.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Puede confirmar que la instalación de Varnish se realizó correctamente al ver la ubicación del ejecutable de Varnish y la versión instalada en su sistema.

which varnishd
varnishd -V
Salida de muestra
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Paso 3: Configurar Nginx para que funcione con Varnish Cache

11. En este paso, debe configurar Nginx para que funcione con Varnish Cache. De forma predeterminada, Nginx escucha en el puerto 80, debe cambiar el puerto predeterminado de Nginx a 8080 para que se ejecute detrás del almacenamiento en caché de Varnish.

Abra el archivo de configuración de Nginx /etc/nginx/nginx.conf y busque la línea escuchar 80 y cámbiela para escuchar 8080 como en el servidor. bloque que se muestra en la captura de pantalla siguiente.

vi /etc/nginx/nginx.conf

Nota: Esto debe hacerse en todos los archivos de configuración del bloque del servidor (normalmente creados en /etc/nginx/conf.d/) para los sitios web que desea servir a través de Barniz.

12. A continuación, abra el archivo de configuración del servicio de Barniz y busque el parámetro ExecStart que especifica el puerto en el que escucha Varnish y cambie su valor de 6081. a 80.

systemctl edit --full  varnish

La línea debería verse como se muestra.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. A continuación, configure Nginx como servidor backend para el proxy Varnish, en el archivo de configuración /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Busque la sección backend y defina la IP y el puerto del host. A continuación se muestra la configuración de backend predeterminada; configúrela para que apunte a su servidor de contenido real.

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

14. Después de realizar todas las configuraciones necesarias, reinicie Nginx HTTPD y Varnish cache para efectuar los cambios anteriores.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Paso 4: Pruebe Varnish Cache en Nginx

15. Finalmente, pruebe si la caché de Varnish está habilitada y funciona con el servicio Nginx usando el comando cURL a continuación para ver el encabezado HTTP.

curl -I http://localhost
Salida de muestra
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Puede encontrar información adicional en el repositorio de Varnish Cache Github: https://github.com/varnishcache/varnish-cache

En este tutorial, explicamos cómo configurar Varnish Cache para el servidor HTTP Nginx en CentOS 7. Utilice el formulario de comentarios a continuación para enviarnos cualquier consulta o idea adicional.