Varnish: aceleración HTTP mediante proxy inverso de alto rendimiento

Buenas,

El otro día me pasó José Manuel Suárez un enlace a su blog, el cual no tenía el gusto de conocer. He tardado poco en sacar provecho de sus contenidos, ya que ayer mismo pude leer una reseña de un proyecto que me ha parecido interesante: Varnish.

varnish

Varnish es un acelerador HTTP, que se caracteriza por mejorar el rendimiento HTTP exprimiendo al máximo las capacidades especiales de la gestión de memoria virtual y el rendimiento del procesamiento I/O del sistema.

Un acelerador HTTP es, habitualmente, un servidor front-end que se coloca delante de un clúster de servidores HTTP. La idea es que este servidor acelere las peticiones HTTP, y que gestione la carga de los servidores que van detrás, con lo que es frecuente desplegar aceleradores en entornos con alto volumen de peticiones. En este sentido, se puede entender que un acelerador HTTP debe ser un proxy inverso que permita cachear contenidos.

Estas dos razones son sólo dos de las muchas por las que esgrimo continuamente que los derivados de UNIX son el camino a seguir en servidores de alta solicitación. Tanto en Linux como en *BSD, es vox populi, y quien no se lo crea que instale un sistema y lo someta a carga real, que la superioridad en términos de gestión de memoria virtual es aplastante. Lo mismo podíamos decir para procesado I/O. Quien quiera ampliar puede recurrir a este enlace, donde con unas adecuadas nociones de arquitectura es fácil entender por qué digo lo que digo.

Volviendo a Varnish, comentar que está orientado especialmente a FreeBSD 6 y para trabajar con versiones 2.6 del kernel de Linux. Para instalarlo en FreeBSD debemos seguir estos sencillos pasos:

1. Actualizar el árbol de ports, para evitar conflictos con las GNU autotools.

2. Instalar, vía colección de ports, devel/automake19 (o versión más reciente) para poder operar con una versión adecuada de autoconf

3. Instalar devel/libtool15 (o versiones más recientes), también desde la colección de ports.

4. Generar el script de configuración: $ ./autogen.sh

5. Configuramos: $ ./configure –enable-debugging-symbols –enable-developer-warnings –enable-dependency-tracking

6. Si configure acaba sin problemas, ejecutamos make & make install

Un saludo,