Varnish Cache 4.1

Publicado en 18 enero, 2016

Varnish Cache es un acelerador de aplicaciones web, también conocido como caché de proxy HTTP inversa. Se instala delante de cualquier servidor HTTP y se configura para almacenar en la caché del servidor una copia del recurso solicitad.

Instalación

apt-get install apt-transport-https
curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -
echo "deb https://repo.varnish-cache.org/debian/ wheezy varnish-4.1" >> /etc/apt/sources.list.d/varnish-cache.list
apt-get update
apt-get install varnish

Configuración 

/etc/default/varnish:

Se ha configurado para poder dividir la cache en disco y memoria (aunque se puede dejar solo uno)

DAEMON_OPTS="-a :80 \ -> Puerto en el que escucha varnish
             -T localhost:6082 \ -> Puerto para el interface de administración
             -f /etc/varnish/custom.alsur.vcl \ -> Ruta del fichero de configuración VCL
             -S /etc/varnish/secret \ -> Autentificación para la administración
             -s disco=file,/cache/varnish/storage.bin,512m \ -> Almacenamiento de objetos en disco
             -s memoria=malloc,256m" -> Almacenamiento de objetos en memoria

Los fichero VCL se encuentran en /etc/varnsih/ la estructura que hemos seguido es la siguiente:

custom.alsur.vcl > Configuración general

alsur/custom.backend.vcl -> Configuración de los diferentes backend

alsur/custom.acl.vcl -> Lista de control de acceso para limpiar, banear o hacer cualquier otra tarea regulada.

alsur/custom.recv.vcl -> Al recibir una petición dependiendo de donde venga re-direcciona a la configuración personalizada:

  • alsur/conf.d/receive/golfinspain.vcl
  • alsur/conf.d/receive/picasa.vcl
  • alsur/conf.d/receive/wordpress.vcl
  • alsur/conf.d/receive/tagr.vcl

alsur/custom.response.vcl -> Al responder una petición dependiendo de donde venga re-direcciona a la configuración personalizada:

  • alsur/conf.d/response/golfinspain.vcl
  • alsur/conf.d/response/picasa.vcl
  • alsur/conf.d/response/wordpress.vcl
  • alsur/conf.d/response/tagr.vcl

Como validar la configuración de varnish:

varnishd -C -f /etc/varnish/custom.alsur.vcl

Monitorización 

Varnish no guarda su log en disco. Almacena los logs en un segmento de memoria compartida. Cuando el segmento de memoria compartida se llena, se reutiliza sobreescribiendo los datos antiguos.

Apache por defecto solo muestra la ip del servidor de varnish, podemos configurarlo para que muestre la ip del cliente, http://www.mediawiki.org/wiki/Manual:Varnish_caching#Log_file.

Varnish herramientas de log de memoria compartida (VSL):

  • varnishlog -> Se utiliza para acceder a los datos de solicitud de concretos.
  • varnishncsa -> Muestra los registros de acceso de varnish en el formato de registro común NCSA.
  • varnishhist -> lee los logs de Varnish en memoria y muestra un histograma mostrando la distribución de las últimas N peticiones por tiempo de procesamiento.Los hits en caché se marcan con el carácter | y los misses con #.
  • varnishtop -> lee los logs de varnish en memoria compartida y presenta una lista continuamente actualizada de las entradas de log que más apariciones tienen

Administración:

Contadores globales:

Otra información:

  • varnishtest -> Permite mostrar registros y contadores de sus pruebas

Limpiar cache
Limpiar todo:

varnishadm "ban req.url ~ ."

Limpiar solo los jpgs

varnishadm "ban req.url ~ .jpg"

Estadisticas

Con este comando obtenemos una instantánea de las estadísticas de rendimiento.

# varnishstat -1
MAIN.sess_conn : conexiones de clientes aceptadas
MAIN.client_req : peticiones de clientes recibidas
MAIN.backend_fail : conexiones fallidas al backend
MAIN.cache_miss : fallos de cache
MAIN.n_object : número de objetos instanciados
MAIN.threads : número hilos en trabajo
MAIN.threads_created : número de hilos de trabajo creados
MAIN.threads_failed : número de fallos al crear hilos de trabajo
MAIN.threads_limited : número máximo de hilos de trabajo
MAIN.threads_destroyed : número de peticiones de trabajo abandonadas
MAIN.n_lru_nuked : número de objetos LRU
MAIN.esi_errors : errores de parseo ESI
MAIN.n_expired: número de objetos expirados

Tareas relacionadas:

SYS-397 – SYS-548


Sin respuestas to "Varnish Cache 4.1"


    ¿Algo que comentar?