Instalar Varnish en CentOS 5 y CentOS 6

Varnish es un acelerador para HTTP que está causando furor en el mundo del hosting y en general en el mundo Linux. Varnish aparece como alternativa al poderoso Nginx, que durante mucho tiempo fue el rey en cuanto a la optimización a nivel de cache, proxy y balanceo de carga para los servicios web. Varnish además de hacer todo lo que hace Nginx con mejor rendimiento, también tiene algunas característiacs destacables, como por ejemplo:

  • Lenguaje propio VLC, que permite al usuario manipular varnish a su gusto.
  • Concebido desde el comiento para utilizarse en sistemas 64 bits
  • Soporte parcial de ESI
  • No necesita reiniciar para tomar los cambios de configuraciones

La forma de funcionar de Varnish es muy sencilla, pero a la vez efectiva:  se guarda la información de cada request en la memoria virtual y el S.O es quien decide qué es guardado y que es paginado al disco duro. Esto es muy útil para que no se cachee información mientras se mueve al disco duro por otras aplicaciones.

varnish

Cada request desde el cliente genera hilos independientes y una vez se llega al límite de hilos, las nuevas conexiones son puestas en cola y recién a medida que se liberan otras, estas nuevas comienzan a despacharse. Sólo si la cola de peticiones pendientes alcanza un gran límite recién serán descartadas.

Un escenario ideal es tener apache, lighttpd o nginx en el puerto 8080 y Varnish en el 80 para actuar como proxy delante del webserver. En fin, ahora que ya tenemos una ideal general de como funciona, vamos a la parte divertida:

Para instalar Varnish vamos a seguir los siguientes pasos:

Si bien este repo es para RHEL/CentOS 5.x, funciona perfecto en la versión CentOS 6.x.

Instalamos el repositorio:

 rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm 

Instalamos Varnish

yum install varnish 

Lo configuramos para iniciar al arranque del sistema:

chkconfig varnish on 

Iniciamos Varnish

service varnish start 

Para comprobar si está funcionando, basta con tipear:

service varnish status

Finalmente, resta configurar el servicio desde dos archivos clave:

/etc/sysconfig/varnish, para configurar el servicio a nivel general

/etc/varnish/default.vlc, para configurar las directivas propias que afectarán a cada sitio web.

 

Más información en la web oficial de Varnish

Acelera las Descargas, Actualizaciones e Instalaciones con Axel

El pipeling o también llamada pipelining es una técnica utilizada para acelerar procesos, mediante la ejecución simultanea de instrucciones. Esto lo aprendí al optimizar este sitio, colocar distintos elementos en un par de subdominios permite al navegador cliente conseguir 6 conexiones adicionales y disminuir el tiempo de espera, Google Maps lo aplica por ejemplo.

Bueno, pero esto no es un post para definir la técnica sino para aprovechar lo que Axel provee, en este caso Axel reemplaza a Wget con la capacidad de hacer pipeling y así descargar un archivo consiguiendo varias conexiones paralelas, vivir menos tiempo esperando y más disfrutando. Axel sería un Acelerador de Descargas, y lo instalamos simplemente ejecutando el siguiente comando:

 sudo apt-get install axel 

El uso de axel es similar a wget, siempre puedes consultar el man para ver cada una de sus opciones, un ejemplo seria este:

 axel http://cdimage.gnewsense.org/gnewsense-livecd-deltah-i386-2.3.iso 

Podemos aprovechar esta característica de Axel para aplicarla al Sistema de Gestión de Paquetes APT, lo que necesitamos es agregar los repositorios, actualizar e instalar apt-fast de esta forma:

sudo add-apt-repository ppa:tldm217/tahutek.net
sudo apt-get update
sudo apt-get install apt-fast

Ahora para instalar o actualizar el sistema simplemente usamos apt-fast en lugar del tradicional apt-get, muy útil en actualizaciones pesadas y sobre todo cuando esta muy demandado el servidor de ubuntu, en esas fechas en las que se lanza una nueva versión.

Aquí algunos ejemplos:

sudo apt-fast dist-upgrade
sudo apt-fast install geany
sudo apt-fast install algunpaquete
sudo apt-fast install angelverde.info 

Mas info en la web oficial de Axel http://axel.alioth.debian.org/