Últimamente hemos estado haciendo pruebas con Pound.

Pound es:

  • un proxy inverso
  • un balanceador de carga
  • un wrapper de HTTPS
  • un sanitizador de cabeceras HTTP
  • un sistema de respaldo ante la caída de un servidor

Y a pesar de todo eso es simple, elegante y efectivo, y, por tanto, hasta resulta atractivo y emocionante.

Veamos algún ejemplo:

balanceo entre dos servidores web:

 ListenHTTP
   Address IP pública
   Port    80
 
   Service
     BackEnd
       Address 192.168.1.10
       Port    8000
     End
     BackEnd
       Address 192.168.1.10
       Port    8001
     End
   End
 End
 

Es decir, decimos a Pound que haga el binding de la IP pública y escuche por el puerto 80 y que reparta las peticiones entre dos servidores web que están escuchando en esta misma máquina (con IP 192.168.1.10) en dos puertos distintos.

Igual que hemos puesto los servidores en una misma máquina los podríamos poner en dos máquinas, en tres; y además no nos tenemos que limitar a uno por máquina.

Además Pound nos permite definir reglas con las cuáles filtrar por servicios. Dichas reglas permiten indicar un tipo de cabecera (para que sólo entren en ese servicio los sites con dicho host), una expresión regular que se comparará con la URL o una redirección

Así, por ejemplo, para hacer que un servidor web sirva sólo contenido estático y dejar al resto servir el contenido dinámico se haría con una expresión como esta:

ListenHTTP
         Address IP pública
         Port    80
 
         Service
                 URL "(javascripts|stylesheets|imag|myfiles|divs|plantillas|*\.html)\/?"
                 BackEnd
                         Address 192.168.1.10
                         Port    8000
                 End
         End
         Service
                 BackEnd
                         Address 192.168.1.10
                         Port    8001
                 End
                 BackEnd
                         Address 192.168.1.10
                         Port    8002
                 End
         End
 End

Y lo mejor es que dichas condiciones se pueden anidar, con lo cuál podemos llegar a conseguir cierto nivel de complejidad en el filtrado de acciones.

¿Quién dijo que el balanceo por software era complicado?

En próximos episodios: pen, vrrpd, replicación y otras hierbas.