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.
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:
- varnishstat -> Estadísticas a tiempo real.
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:

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.