Vinyl Cache , anteriormente Varnish Cache [ 2 ] , es un proxy de caché inverso [ 3 ] utilizado como acelerador HTTP para sitios web dinámicos con mucho contenido , así como para API . A diferencia de otros aceleradores web , como Squid , que comenzó como una caché del lado del cliente, o Apache y nginx , que son principalmente servidores de origen , Vinyl Cache fue diseñado como un acelerador HTTP. Vinyl Cache se centra exclusivamente en HTTP , a diferencia de otros servidores proxy que suelen admitir FTP , SMTP y otros protocolos de red .
Historia
El proyecto fue iniciado por la rama en línea del periódico sensacionalista noruego Verdens Gang . El arquitecto y desarrollador principal es el consultor independiente danés Poul-Henning Kamp [ 3 ] (un reconocido desarrollador de FreeBSD ), mientras que la gestión, la infraestructura y el desarrollo adicional fueron proporcionados inicialmente por la empresa noruega de consultoría Linux Linpro . Posteriormente, el soporte, la gestión y el desarrollo de Varnish se transfirieron a una empresa independiente, Varnish Software.
Varnish es un software libre y de código abierto , disponible bajo una licencia BSD de dos cláusulas . Varnish Software ofrece soporte comercial, entre otros.
La versión 1.0 de Varnish se lanzó en 2006, [ 4 ] [ 5 ] Varnish 2.0 en 2008, [ 6 ] Varnish 3.0 en 2011, [ 7 ] Varnish 4.0 en 2014, [ 8 ] Varnish 5.0 en 2016, [ 9 ] Varnish 6.0 en marzo de 2018, [ 10 ] y Varnish 7.0 en septiembre de 2021. [ 11 ]
Arquitectura
Varnish almacena los datos en memoria virtual y deja al sistema operativo la tarea de decidir qué se almacena en memoria y qué se transfiere al disco . [ 12 ] Esto ayuda a evitar la situación en la que el sistema operativo comienza a almacenar en caché los datos mientras la aplicación los transfiere al disco.
Varnish utiliza un sistema de subprocesos intensivo , donde cada conexión de cliente es gestionada por un subproceso de trabajo independiente. Cuando se alcanza el límite configurado de subprocesos de trabajo activos, las conexiones entrantes se colocan en una cola de desbordamiento; cuando esta cola alcanza su límite configurado, las conexiones entrantes se rechazan.
El principal mecanismo de configuración es el Lenguaje de Configuración de Varnish (VCL), un lenguaje específico de dominio (DSL) que se utiliza para escribir ganchos que se ejecutan en puntos críticos del procesamiento de cada solicitud. La mayoría de las decisiones de política se dejan en manos del código VCL, lo que hace que Varnish sea más configurable y adaptable que la mayoría de los demás aceleradores HTTP. Cuando se carga un script VCL, se traduce a C , el compilador del sistema lo compila en un objeto compartido y se carga directamente en el acelerador, que puede reconfigurarse sin necesidad de reiniciarlo.
Diversos parámetros de ejecución controlan aspectos como el número máximo y mínimo de subprocesos de trabajo, distintos tiempos de espera, etc. Una interfaz de administración por línea de comandos permite modificar estos parámetros, así como compilar, cargar y activar nuevos scripts VCL sin necesidad de reiniciar el acelerador.
Para reducir al mínimo el número de llamadas al sistema en la ruta rápida , los datos de registro se almacenan en memoria compartida y la tarea de supervisar, filtrar, formatear y escribir los datos de registro en el disco se delega a una aplicación independiente.
Métricas de rendimiento
Varnish Cache puede acelerar la entrega de información en un factor de varios cientos. Para garantizar un funcionamiento y rendimiento adecuados, Varnish expone métricas que se pueden monitorear en las siguientes áreas: [ 13 ]
- Métricas del cliente : conexiones y solicitudes del cliente
- Rendimiento de la caché : aciertos y desalojos de caché .
- Métricas de subprocesos : creación de subprocesos, fallos, colas
- Métricas de backend : éxito, fallo y estado de las conexiones de backend
Recopilación métrica
Varnish Cache incluye herramientas de monitorización y registro. Una de las más utilizadas es varnishstat, que proporciona una instantánea detallada del rendimiento actual de Varnish. Ofrece acceso a estadísticas en memoria, como aciertos y fallos de caché, consumo de recursos, subprocesos creados y más. [ 14 ]
barnizstat
Al ejecutar varnishstat desde la línea de comandos, se obtiene una lista que se actualiza continuamente con todas las métricas de Varnish disponibles. Si se añade la opción -1, varnishstat finalizará tras imprimir la lista una sola vez. [ 15 ] Varnishstat puede utilizarse como herramienta independiente para comprobar puntualmente el estado de la caché. Para graficar las métricas a lo largo del tiempo, correlacionarlas con otras estadísticas de toda la infraestructura y configurar alertas sobre cualquier problema que pueda surgir, los servicios de monitorización pueden integrarse con Varnish y recopilar las métricas de varnishstat.

registro de barniz
Varnishlog es una herramienta que se puede utilizar para depurar o ajustar la configuración de Varnish, ya que proporciona información detallada sobre cada solicitud individual.
Balanceo de carga
Varnish admite el balanceo de carga mediante un director round robin y un director aleatorio, ambos con una ponderación por backend. También está disponible la comprobación básica del estado de los backends. [ 16 ]
Otras características
Varnish Cache también incluye:
- Compatibilidad con plugins mediante Varnish Modules, también llamados VMODs [ 17 ]
- Compatibilidad con Edge Side Includes, incluyendo la unión de fragmentos ESI comprimidos.
- Compresión y descompresión gzip
- DNS, aleatorio, hash y directores basados en IP de cliente
- Transmisión HTTP Pass & Fetch
- Soporte experimental para almacenamiento persistente, sin desalojo LRU.
- Modos de Santa [ 18 ] y Gracia [ 19 ] [ 20 ] .
- Si un servidor falla y devuelve el código de estado HTTP 500 , el modo Grace ignorará los encabezados de expiración y seguirá devolviendo versiones almacenadas en caché. El modo Saint se utiliza para el equilibrio de carga , donde un servidor con fallos se bloquea durante un período de cuarentena y se excluye del grupo de servidores.
Véase también
- Acelerador web que analiza la aceleración HTTP basada en el host.
- Servidor proxy que analiza los proxies del lado del cliente.
- Proxy inverso que analiza los proxies del lado del origen.
- Comparación de software de servidor web
- Protocolo de caché de Internet
- Meditación del gurú : un mensaje de error utilizado por Varnish
Referencias
- ↑ "Lanzamientos y descargas" .
- ↑ "Sobre Vinyl Cache y Varnish Cache - Vinyl Cache" . vinyl-cache.org . Consultado el 31 de mayo de 2026 .
- 1 2 Feryn, Thijs (2017). 1. ¿Qué es Varnish Cache? - Primeros pasos con Varnish Cache [ Libro ] . O'Reilly Media, Incorporated. ISBN 978-1-4919-7221-2. Consultado el 22 de octubre de 2023 .
- ↑ "Calendario de Adviento Catalyst - Día 14" . www.catalystframework.org . Archivado del original el 9 de julio de 2012. Consultado el 4 de septiembre de 2020 .
- ^ Smørgrav, Dag-Erling (20 de septiembre de 2006). "Lanzamiento del barniz 1.0" . Consultado el 4 de septiembre de 2020 .
- ↑ Heen, Tollef Fog (15 de octubre de 2008). "¡Lanzamiento de Varnish 2.0!" . Consultado el 4 de septiembre de 2020 .
- ^ Heen, Tollef Fog (17 de junio de 2011). "Lanzamiento del barniz 3.0.0" . Consultado el 4 de septiembre de 2020 .
- ^ Karstensen, Lasse (10 de abril de 2014). "Lanzamiento del barniz 4.0.0" . Consultado el 4 de septiembre de 2020 .
- ↑ "Varnish Cache 5.0.0 — Varnish HTTP Cache" . varnish-cache.org . Consultado el 4 de septiembre de 2020 .
- ↑ Poul-Henning Kamp (15 de marzo de 2018). "Lanzamiento de Varnish 6.0" . Consultado el 15 de mayo de 2018 .
- ↑ Poul-Henning Kamp (9 de agosto de 2022). "Varnish Cache 7.0.0 lanzado" . Consultado el 9 de agosto de 2022 .
- ↑ "Distribución de medios digitales: Cómo mejoramos el rendimiento en 4 veces" . Blogs de la BBC . 17 de diciembre de 2015. Consultado el 17 de septiembre de 2025 .
- ↑ "Principales métricas de rendimiento de Varnish" . Principales métricas de rendimiento de Varnish . 28 de julio de 2015. Consultado el 4 de septiembre de 2020 .
- ↑ "Cómo recopilar métricas de Varnish" . Cómo recopilar métricas de Varnish . 28 de julio de 2015. Consultado el 4 de septiembre de 2020 .
- ↑ "varnishstat(1): Estadísticas del acelerador HTTP - Página man de Linux" . linux.die.net . Consultado el 4 de septiembre de 2020 .
- ↑ "BackendPolling – Varnish" . Varnish-cache.org. Archivado del original el 21 de agosto de 2010. Consultado el 18 de julio de 2014 .
- ↑ "Directorio de VMODs (Módulos y extensiones de Varnish) | Comunidad Varnish" . Varnish-cache.org . Consultado el 18 de julio de 2014 .
- ↑ "Saint Mode" . Barniz . Archivado del original el 7 de mayo de 2011.
- ↑ "Grace Mode" . Barniz . Archivado del original el 9 de mayo de 2011.
- ↑ Feryn, Thijs (2017). Introducción a Varnish Cache: Acelere sus aplicaciones web . O'Reilly Media, Inc. pág. 85. ISBN 9781491972229.
Enlaces externos
- Sitio web oficial

- Sitio web comercial oficial
- Notas del arquitecto
- " Lo estás haciendo mal ", artículo de ACM Queue del 11 de junio de 2010 , escrito por el desarrollador de Varnish, Poul-Henning Kamp, que describe la implementación de la lista LRU.
- Barniz explicado en términos sencillos
- Cómo aplicar barniz en caché
- proxy inverso
- Servidores proxy gratuitos
- Software de servidor proxy para Linux
- Software relacionado con redes Unix
- Software libre programado en C
- Software gratuito para servidores web
- Software multiplataforma
- Proxy directo
- Software que utiliza la licencia BSD.