Cómo instalar y configurar Varnish Cache 6 con Nginx en CentOS 8

Cómo instalar y configurar Varnish Cache 6 con Nginx en CentOS 8

Varnish Cache es un acelerador HTTP de proxy inverso gratuito y de código abierto para sitios web y API. Se puede instalar como un proxy inverso frente a cualquier servidor web que se ejecute en HTTP. Se encuentra entre el servidor web y el navegador y guarda páginas web, cookies y otros datos en la memoria. Este caché se utilizará para atender todas las solicitudes futuras de contenido exactamente similar. Esto aumentará la carga de la aplicación web y mejorará el rendimiento del servidor web más de 300 veces.

En este tutorial, configuraremos el servidor Nginx como un servidor back-end y lo configuraremos para escuchar en el puerto 8080, luego configuraremos Varnish cache para escuchar en el puerto HTTP predeterminado 80.

requisitos previos

  • Un servidor que ejecuta CentOS 8.
  • Se configura una contrase√Īa de root en el servidor.

Instalar y configurar el servidor web Nginx

Primero, deber√° instalar el servidor web Nginx en su sistema. Puedes instalarlo con el siguiente comando:

dnf install nginx -y

Una vez instalado, inicie el servicio Nginx y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start nginx
systemctl enable nginx

De forma predeterminada, Nginx está escuchando en el puerto 80. Por lo tanto, deberá configurar Nginx para escuchar en el puerto 80. Puede configurarlo editando el archivo de configuración predeterminado de Nginx:

nano /etc/nginx/nginx.conf

Encuentra las siguientes líneas:

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

Y reemplácelos con las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, el servidor web Nginx est√° instalado y escuchando en el puerto 8080. Puede verificarlo con el siguiente comando:

netstat -tpln | grep 8080

Deberías obtener el siguiente resultado:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 

Instalar Varnish Cache

De forma predeterminada, el paquete Varnish est√° disponible en el repositorio predeterminado de CentOS 8. Puede instalarlo simplemente ejecutando el siguiente comando:

dnf module install varnish

Una vez instalado, inicie el servicio Varnish con el siguiente comando:

systemctl start varnish

También puede verificar la versión instalada de Varnish cache con el siguiente comando:

varnishd -V

Debería ver el siguiente resultado:

varnishd (varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2018 Varnish Software AS

Configurar Varnish para Nginx

A continuación, deberá configurar Varnish para que se ejecute en el puerto 80 y recibir solicitudes HTTP de los clientes. Puede configurarlo editando el archivo de configuración predeterminado de Varnish:

systemctl edit --full varnish

Encuentra la siguiente línea:

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

Y, reemplácelo con la siguiente línea:

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

Guarde y cierre el archivo cuando haya terminado.

A continuación, deberá definir el servidor backend para Varnish. Puede hacerlo editando el archivo de configuración principal de Varnish /etc/varnish/default.vcl:

nano /etc/varnish/default.vcl

Cambia las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado. Luego, vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, reinicie el servicio Varnish y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl restart varnish
systemcl enable varnish

También puede verificar el estado del Barniz con el siguiente comando:

systemctl status varnish

Deberías obtener el siguiente resultado:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-08-29 09:36:58 EDT; 12s ago
  Process: 30421 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 30424 (varnishd)
    Tasks: 217
   Memory: 91.8M
   CGroup: /system.slice/varnish.service
           ??30424 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??30434 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Aug 29 09:36:57 centos8 systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30424]: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30424]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) said Child starts
Aug 29 09:36:58 centos8 systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

Ahora puede verificar el puerto de escucha de Nginx y Varnish con el siguiente comando: Publicidad

netstat -tpln | grep 80

Debería ver el siguiente resultado:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30424/varnishd      
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      30424/varnishd      
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 

Configurar SELinux y Firewall

De manera predeterminada, SELinux est√° habilitado en CentOS 8. Por lo tanto, deber√° configurar SELinux para Varnish. Puedes configurarlo con el siguiente comando:

setsebool -P httpd_can_network_connect 1

A continuación, deberá permitir el puerto 80 a través de firewalld. Puedes hacerlo con el siguiente comando:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Probar Varnish Cache

En este punto, Varnish caché está instalado y configurado con el servidor web Nginx. Ahora, es hora de probar si Varnish caché funciona o no.

Puede probarlo usando el comando curl como se muestra a continuación:

curl -I http://localhost

Debería ver el siguiente resultado:

																																																																																																																																																																																																																																																																																																																																																																		
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sat, 29 Aug 2020 13:53:44 GMT
Content-Type: text/html; charset=UTF-8
X-Powered-By: PHP/7.2.24
X-Varnish: 32800
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive

Conclusión

¡Felicidades! Ha instalado con éxito Varnish Cache con Nginx en CentOS 8. Espero que también pueda configurar Varnish Cache con el servidor web Apache fácilmente. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *