Varnish Cache (también conocido como Varnish) es un acelerador HTTP de alto rendimiento de código abierto diseñado para acelerar los servidores web. En nuestros últimos artículos, hemos explicado cómo configurar Varnish Cache para Apache en CentOS 7 y CentOS 8.
En este artículo, te mostraremos cómo instalar y usar Varnish Cache como un front-end para el servidor HTTP Nginx en CentOS 7. Esta guía también debería funcionar en RHEL 7.
Requisitos
Paso 1: Instalar el servidor web Nginx en CentOS 7
1. Comienza instalando el servidor HTTP Nginx desde los repositorios de software predeterminados de CentOS utilizando el gestor de paquetes YUM de la siguiente manera.
# yum install nginx

2. Cuando la instalación se complete, inicia el servicio de Nginx por ahora y habilítalo para que se inicie automáticamente al arrancar el sistema.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx

3. Ahora modifica las reglas del firewall del sistema para permitir paquetes entrantes en el puerto 80 utilizando los comandos a continuación.
# 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: Instalar 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 la escritura), por lo tanto, necesitas agregar el repositorio oficial de Varnish Cache.
Antes de eso, necesitas habilitar el repositorio EPEL para instalar varios paquetes de dependencias como se muestra a continuación.
# yum install -y epel-release
5. A continuación, instala pygpgme, un paquete para manejar firmas GPG y yum-utils, una colección de utilidades útiles que extienden las características nativas de yum de varias maneras.
# yum install pygpgme yum-utils
6. Ahora crea un archivo llamado /etc/yum.repos.d/varnishcache_varnish5.repo que contenga la configuración del repositorio que se muestra a continuación.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
Importante: Asegúrate de reemplazar el
y 7
en la configuración a continuación con tu distribución de Linux y versión:
[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 ejecuta el siguiente comando para actualizar la caché yum local e instalar el paquete de caché de varnish (no olvides aceptar la clave GPG escribiendo y
o yes
mientras instalas el 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 varnish se encuentran en /etc/varnish/:
- /etc/varnish/default.vcl – este es el archivo de configuración principal de varnish, está escrito usando el lenguaje de configuración de varnish (VCL).
9. Ahora inicie el servicio de barniz, habilítelo para que se inicie automáticamente durante el arranque del sistema y verifique su estado para asegurarse de que esté en funcionamiento de la siguiente manera.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Puede confirmar que la instalación de Varnish fue exitosa al ver la ubicación del ejecutable de Varnish y la versión instalada en su sistema.
$ which varnishd $ varnishd -V
Salida de ejemplo
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Paso 3: Configurar Nginx para trabajar con la caché de Varnish
11. En este paso, necesitas configurar Nginx para que funcione con la caché de Varnish. Por defecto, Nginx escucha en el puerto 80, debes cambiar el puerto predeterminado de Nginx a 8080 para que funcione detrás de la caché de Varnish.
Abre el archivo de configuración de Nginx /etc/nginx/nginx.conf y encuentra la línea listen 80 y cámbiala a listen 8080 como se muestra en el bloque del servidor que se muestra en la captura de pantalla a continuación.
# vi /etc/nginx/nginx.conf

Nota: Esto debe hacerse en todos los archivos de configuración de bloques de servidor (generalmente creados en /etc/nginx/conf.d/) para los sitios web que deseas servir a través de Varnish.
12. A continuación, abre el archivo de configuración del servicio de barniz y encuentra el parámetro ExecStart que especifica el puerto en el que escucha Varnish y cambia 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, configura Nginx como servidor backend para el proxy de Varnish, en el archivo de configuración /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
Encuentra la sección backend, y define la IP y el puerto del host. A continuación se muestra la configuración predeterminada del backend, establece esto para que apunte a tu servidor de contenido real.
backend default { .host = "127.0.0.1"; .port = "8080"; }
14. Después de realizar todas las configuraciones necesarias, reinicia Nginx HTTPD y la caché de Varnish para efectuar los cambios anteriores.
# systemctl daemon-reload # systemctl restart nginx # systemctl restart varnish
Paso 4: Prueba la caché de Varnish en Nginx
15. Finalmente, prueba si la caché de Varnish está habilitada y funcionando con el servicio de Nginx utilizando el comando cURL a continuación para ver el encabezado HTTP.
# curl -I http://localhost
Salida de ejemplo
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
Puedes encontrar información adicional en el Repositorio de Github de Varnish Cache: https://github.com/varnishcache/varnish-cache
En este tutorial, explicamos cómo configurar Varnish Cache para el servidor HTTP de Nginx en CentOS 7. Utiliza el formulario de comentarios a continuación para enviarnos cualquier consulta o ideas adicionales.
Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/