Skip to content

Configurar Varnish para aumentar drásticamente la velocidad de tu web

Hay una gran variedad de soluciones sencillas que aumentan drásticamente la velocidad de nuestros sitios web. Una implementación sencilla, barata y efectiva es la de colocar un acelerador cache delante del servidor web.

La función de estos aceleradores es la recibir peticiones HTTP, realizar la solicitud al servidor web y cachear los contenidos devueltos (imágenes, vídeos,…) en su caché interna que incorpora para futuras peticiones. De esta forma, cuando se solicite información que esté almacenada en memoria o «cacheada», no acudirá al servidor web, sino que la recuperará directamente desde la caché.

De esta manera, conseguimos reducir la carga, las llamadas a la base de datos y al servidor web. Imagínate la carga que quitamos a MySQL en un Worpdress cargado con todo tipo de plugins. Como el contenido está en memoria, éste se muestra muy rápidamente y no necesitamos acudir al disco.Esta solución es más rápida que incluso un disco SSD sin Varnish.

Hay muchos aceleradores cache. Vamos a explicar cómo instalar Varnish ya que es uno de los mejores, y, además,  está muy de moda. La verdad es que Varnish es muy, muy rápido. Según varias pruebas que he realizado, el incremento de velocidad ha estado en torno al un 50%-70%. En algunos sitios he leído que aumenta un factor de 300 – 1000x, dependiendo de la arquitectura usada. Si tu sitio web contiene mucho contenido dinámico y recibe muchas visitas, Varnish es “the way to go” J.

En resumen, razones para usar Varnish:

  • Reducir la carga del servidor, especialmente la CPU.
  • Cargar el sitio mucho más rápidamente.
  • Mejorar el SEO.
  • Sobrevivir a los picos de tráfico.
  • Conseguir más usuarios o hacerlos más felices.

Instalación de Varnish para el servidor web Apache

Voy a explicar el proceso de instalación en un servidor Ubuntu 12.04. Lo primero que deberemos hacer es añadir el repositorio desde donde lanzaremos la instalación. Para ello ejecutaremos la siguiente instrucción desde la consola de nuestro servidor dedicado, VPS o cloud server:

curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add – 

El siguiente paso es añadir el repositorio a la lista de fuentes apt. Para ello editamos el archivo sources.list

sudo nano /etc/apt/sources.list

Una vez dentro del archivo, agregamos el repositorio de Varnish a la lista de fuentes.

deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0

Finalmente, actualizamos apt-get e instalamos Varnish.

sudo apt-get update

sudo apt-get install varnish

Configurando Varnish

Vamos a elegir el puerto 80 por donde escucha Varnish las peticiones web. Hay que elegir este puerto 80 (usado por el servidor web) ya que Varnish ha de almacenar o cachear las peticiones delante del servidor Web.

Editamos el fichero de configuración de Varnish:

sudo nano /etc/default/varnish

De todos los valores que aparezcan en ese fichero, debemos modificar la configuración del parámetro Daemon_opts, asignándoles los valores que os dejamos a continuación.

El parámetro 256m, se corresponde a la memoria que quieres que use para el almacenamiento cache. Normalmente puedes poner la mitad de memoria que use tu servidor. Si deseas poner 1 GB, puedes modificarlo por “1g” en vez de “256m”

Una vez guardado, abre el siguiente fichero:

sudo nano /etc/varnish/default.vcl

Este fichero indica a Varnish dónde escuchar el contenido web, entre otras muchas opciones.  Aunque Apache escuche en el puerto 80, luego lo modificaremos. En este fichero, vamos a indicar a Varnish que escuche en el puerto 8080. El fichero quedaría de este modo:

Por último lo que haría falta sería modificar el puerto de escucha del servidor web. En caso de tratarse de Apache, editamos el fichero que contiene los puertos

sudo nano /etc/apache2/ports.conf

También hay que modificar el puerto de los virtual host a 8080.

sudo nano /etc/apache2/sitios-webs-a-cambiar/default

Guarda el fichero y reinicia Apache y Varnish.

sudo service apache2 restart sudo service varnish restart

Una vez iniciados, a partir de ahora, los accesos a tu web estarán siendo “cacheados” en memoria. Puedes ver los detalles y progresos de Varnish con el siguiente comando:

 varnishstat

Y si quieres hacer unas pruebas para comparar la mejora en el rendimiento de tu web, prueba con este comando:

ab -n 1000 -c 5 http://tu-web-a-probar/index.php

Varnish ha de ser configurado más a fondo para que se adapte a tus necesidades. Por ejemplo, es necesario tener en cuenta qué áreas no queramos que sean “cacheadas” como las zonas de administración de WordPress y las cookies.

Para configurar Varnish específicamente para WordPress prueba esta guía. También hay ficheros de configuración disponibles para todo tipo de CMS y necesidades a través de las diferentes VCLs

En los servidores VPS con discos SSD, servidores dedicados o cloud de digitalvalley.com podemos ayudarte con la configuración de tu Varnish J

¡Que tengas una buena sesión de caching!

Óscar Montero
Gerente de Digital Valley

Published incache

Be First to Comment

Deja un comentario

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