LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Piense por un momento en lo que sucedió cuando navegó a la página actual. Hizo clic en un enlace que recibió a través de un boletín informativo o en el enlace en la página de inicio de LinuxParty.es y luego fue llevado a este artículo.

En pocas palabras, usted (o en realidad su navegador) envió una solicitud HTTP al servidor web que aloja este sitio y el servidor envió una respuesta HTTP.

Tan simple como suena, este proceso implica mucho más que eso. Se tuvo que realizar una gran cantidad de procesamiento en el lado del servidor para presentar la página con un formato agradable que puede ver con todos los recursos: estáticos y dinámicos.

Sin profundizar mucho más, puede imaginar que si el servidor web tiene que responder a muchas solicitudes como esta simultáneamente (que solo sean unos pocos cientos para empezar), puede hacer que todo el sistema se detenga en poco tiempo.

Y ahí es donde Varnish , un acelerador HTTP de alto rendimiento y proxy inverso, puede salvar el día. En este artículo, explicaré cómo instalar y usar Varnish como interfaz para Apache o Nginx para almacenar en caché las respuestas HTTP más rápido y sin colocar una carga adicional en el servidor web.

Sin embargo, dado que Varnish normalmente almacena su caché en la memoria en lugar de en el disco, debemos tener cuidado y limitar el espacio de RAM asignado para el almacenamiento en caché. Discutiremos cómo hacer esto en un minuto.

Cómo funciona Varnish

 

Clients send HTTP requests to what they see as a "regular" web server service, but it's Varnish wich recives them.

Varnish in turn relays the requests to Apacyhe or Nginx and sotres the responses in its cache so that future requests are server directly from there instead of through another processing operation in the web server.

This speeds up response times and decreases the processing load in the web server itself.

Cómo funciona el Varnish

Instalación de Varnish Cache en un servidor Linux

Esta publicación asume que ha instalado un servidor LAMP o LEMP . De lo contrario, instale una de esas pilas antes de continuar.

La documentación oficial recomienda instalar Varnish desde el propio repositorio del desarrollador porque siempre proporcionan la última versión. También puedes optar por instalar el paquete desde los repositorios oficiales de tu distribución, aunque puede estar un poco desactualizado.

Además, tenga en cuenta que los repositorios del proyecto solo brindan soporte para sistemas de 64 bits , mientras que para máquinas de 32 bits , deberá recurrir a los repositorios mantenidos oficialmente por su distribución.

En este artículo, instalaremos Varnish desde los repositorios admitidos oficialmente por cada distribución. La razón principal detrás de esta decisión es brindar uniformidad en el método de instalación y garantizar la resolución automática de dependencias para todas las arquitecturas.

Instalar Varnish en Linux basado en Debian

En las distribuciones basadas en Debian , puede instalar Varnish usando el comando apt como se muestra.

# apt update 
# apt install varnish 	

Instalar Varnish Cache en Debian

Instale Varnish en Linux basado en RHEL

En distribuciones basadas en RHEL como CentOS, Rocky y AlmaLinux, deberá habilitar el repositorio EPEL antes de instalar Varnish usando el comando yum como se muestra.

# yum install epel-release
# yum update
# yum install varnish 

Instale Varnish Cache en RHEL

Si la instalación se completa con éxito, tendrá una de las siguientes versiones de barniz según su distribución:

# varnishd -V

varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)

Finalmente, debe iniciar Varnish manualmente si el proceso de instalación no lo hizo por usted y permitir que se inicie en el arranque.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish

Comprobar el estado de la caché Varnish

De forma predeterminada, el servicio de barniz utiliza el puerto 6081 y usted lo confirma ejecutando el siguiente comando netstat .

# netstat -tunlp | grep 6081

Compruebe el puerto de caché de Varnish

Configuración de Varnish Cache en Linux

Como dijimos anteriormente, Varnish se encuentra en medio de los clientes externos y el servidor web. Por esa razón, y para que el almacenamiento en caché sea transparente para los usuarios finales, necesitaremos:

  1. Cambie el puerto predeterminado 6081 donde escucha Varnish a 80 .
  2. Cambie el puerto predeterminado donde escucha el servidor web a 8080 en lugar del 80 predeterminado .
  3. Redirigir el tráfico entrante de Varnish al servidor web. Afortunadamente, Varnish hace esto automáticamente después de haber completado los pasos 1) y 2) .

Cambiar puerto de barniz

El proceso varnishd está controlado por systemd y tiene su archivo de unidad en /usr/lib/systemd/system/varnish.service , que contiene la configuración predeterminada del tiempo de ejecución de Varnish.

Aquí, necesitamos cambiar el puerto de barniz predeterminado de 6081 a puerto 80 y el tamaño de caché a 1 GB como se muestra al ejecutar el siguiente comando, que abrirá el archivo de la unidad en el editor como se muestra.

Nota : puede cambiar la cantidad de memoria según sus recursos de hardware o, alternativamente, elegir guardar los archivos almacenados en caché en el disco.

$ sudo systemctl edit --full varnish
O
# systemctl edit --full varnish

Configurar Varnish Cache en Linux

Después de realizar cambios en el archivo /etc/systemd/system/varnish.service , debe volver a cargar el demonio Systemd ejecutando el siguiente comando:

# systemctl daemon-reload

Cambiar puerto Apache o Nginx

Después de cambiar el puerto de Varnish, ahora debe cambiar el puerto de su servidor web Apache o Nginx del 80 predeterminado al puerto de red más común, es decir, 8080 .

---------- On Debian-based Systems ---------- 
# nano /etc/apache2/ports.conf      [On Apache]
# /etc/nginx/sites-enabled/default  [On Nginx]

---------- On RHEL-based Systems ----------
# vi /etc/httpd/conf/httpd.conf   [On Apache]
# vi /etc/nginx/nginx.conf        [On Nginx]  

Cambiar puerto Apache

Una vez que haya realizado los cambios, no olvide reiniciar Varnish y el servidor web.

# systemctl restart varnish 

---------- On Debian-based Systems ---------- 
# systemctl restart apache2     
# systemctl restart nginx

---------- On RHEL-based Systems ----------
# systemctl restart httpd     
# systemctl restart nginx     

Probando Varnish Cache en Linux

La primera prueba consiste en realizar una solicitud HTTP a través del comando curl y verificar que sea manejada por Varnish:

# curl -I http://localhost

Comprobar el estado de la caché Varnish

Varnish también incluye dos útiles herramientas:

  • Vea en tiempo real los registros de Varnish, llamados intuitivamente varnishlog .
  • Muestra las estadísticas de caché de Varnish, llamadas varnishstat .

Como segunda prueba, en el siguiente screencast, mostraremos tanto los registros como las estadísticas en un servidor CentOS ( dev1 , mitad superior de la pantalla) y en un servidor Debian ( dev2 , mitad inferior de la pantalla) como son las solicitudes HTTP. enviados y respuestas recibidas.

Prueba comparativa de rendimiento del servidor web

Nuestra tercera y última prueba consistirá en evaluar tanto el servidor web como Varnish con la herramienta de evaluación comparativa ab y comparar los tiempos de respuesta y la carga de la CPU en cada caso.

En este ejemplo en particular, usaremos el servidor CentOS , pero puedes usar cualquier distribución y obtener resultados similares. Observe el promedio de carga en la parte superior y la línea Solicitudes por segundo en la salida de ab .

Con ab , se nos enviarán 50 ( -c 50 ) solicitudes concurrentes al mismo tiempo y repetiremos la prueba 1000000 veces (indicado por -n 1000000 ). Varnish devolverá una mayor cantidad de solicitudes por segundo y un promedio de carga mucho más bajo.

Importante : recuerde que Varnish está escuchando en el puerto 80 (el puerto HTTP predeterminado), mientras que Apache está escuchando en el puerto 8080. También puede tomar nota de la cantidad de tiempo necesario para completar cada prueba.

# ab -c 50 -n 100000 http://localhost/index.html
Conclusión

En este artículo, hemos discutido cómo configurar un caché de Varnish frente a un servidor web, Apache o Nginx . Tenga en cuenta que no hemos profundizado en el archivo de configuración default.vcl , lo que nos permite personalizar aún más la política de almacenamiento en caché.

Ahora puede consultar la documentación oficial para obtener más ejemplos de configuración o dejar un comentario utilizando el formulario a continuación.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías