miércoles, 30 de marzo de 2016

Práctica 3: Balanceo de carga

La Práctica 3, que hemos comenzado esta semana, tiene como objetivo aprender a diseñar y configurar una granja web con balanceo de carga.

Para ello utilizaremos los servidores configurados en la práctica 2 a modo de servidores finales (los que quedan detrás del balanceador) y necesitaremos instalar una nueva máquina Linux M3 en la que inicialmente sólo instalaremos el servicio SSH (NO instalaremos el software Apache, ya que usaría el puerto 80, que debe estar libre para que el software de balanceo reciba las peticiones HTTP.

La estructura de la granja será la que vemos arriba a la derecha en la siguiente imagen:

Conviene tener en cuenta los cuatro puntos relativos a la M3 indicados a la izquierda.

Para esta práctica, como parte obligatoria, usaremos nginx y haproxy como software de balanceo.

Debemos tener en cuenta que sólo uno de ellos puede estar en ejecución en un momento dado (ocupando el puerto 80). Así pues, antes de instalar, configurar y lanzar el otro, debemos asegurarnos de que el primero está "apagado".

Una vez que tengamos configurado el software de balanceo en M3 podemos hacer peticiones desde la línea de comandos usando la herramienta curl a la dirección IP del balanceador (no a las IP de las máquinas servidoras finales). Realizando varias peticiones comprobaremos que el balanceador está reencaminando el tráfico a cada servidor final de acuerdo con el algoritmo de balanceo configurado.

Los pasos para llevar a cabo la configuración y pruebas de ambos programas se ofrecen en detalle en el guión de la Práctica 3.

3 comentarios:

  1. Para instalar POUND, podéis revisar los siguientes recursos:

    https://es.wikipedia.org/wiki/Pound_-_Servidor_Proxy_Reverso

    https://www.howtoforge.com/high-availability-load-balancer-pound-keepalived-debian-etch

    ResponderEliminar
  2. En el siguiente se ofrece información adicional sobre nginx y cómo configurarlo.
    Al final hay un vídeo en el que se muestra cómo usar nginx tanto como servidor web (similar a Apache) o como balanceador de carga:

    https://www.nginx.com/blog/nginx-load-balance-deployment-models/

    ResponderEliminar
  3. si tras aplicar la configuración que se describe en el guión de prácticas (en el default.conf) aún así nginx sigue actuando como servidor web y no como balanceador, editad el /etc/nginx/nginx.conf y de los dos "include" que hay hacia el final de este archivo de configuración, comentad el segundo (que corresponde con la configuración de servidor web), dejando sólo el primero de ambos (el que corresponde con la configuración de balanceador).

    ResponderEliminar