Está en la página 1de 3

Instalacin de Balanceador de Carga Web Los sistemas sern consumidos a travs de servicios web o aplicaciones web.

Por lo tanto es necesario dar un correcto funcionamiento a las aplicaciones que la gente pueda trabajar sin errores "informticos" o "tecnolgicos". La realidad es que los sistemas fallan y hay que evitar en la medida de lo posible que estos fallos supongan una negacin de acceso a los servicios. Para evitar que el sistema falle en referencia al acceso, se implementara el balanceo de carga web con el mdulo de Apache mod_proxy_server, de manera de contar con: Alta disponibilidad: En caso de que un servidor se caiga otro servidor activo preste servicio. Balanceo de carga: Cada servidor atender un porcentaje de las peticiones de manera que el sistema en conjunto soporte ms usuarios. Tendremos un frontend web que ser el balanceador, quien inicialmente recibir todas las peticiones de los clientes, para posteriormente redirigirlas a los backends web que configuremos (una red interna). Efectivamente, esto ser transparente para los clientes.

A la izquierda figuran los equipos cliente (los que realizan las peticiones web), en el centro tendramos el equipo balanceador (frontend) con IP hacia a fuera 170.0.0.51 e IP interno 192.168.1.1, quien recibe todas las peticiones, y finalmente ste las distribuira a los backends en funcin del algoritmo elegido para tal efecto. Toda la configuracin que a continuacin se detalla se realiza en el frontend. Instalacin 1. Instalamos el Apache Server (apache2) en el 192.168.1.1
sudo apt-get install apache2

2.

Luego debemos habilitar los mdulos correspondientes para que el balanceador de carga pueda funcionar. En 192.168.1.1 se deben instalar los mdulos para proxy balancer y reiniciar Apache2:
sudo apt-get install libapache2-mod-proxy-html #para instalar proxy sudo a2enmod proxy sudo a2enmod proxy_http

sudo a2enmod proxy_balancer sudo /etc/init.d/apache2 restart

Configuracin Un vez instalado y activado el modulo en apache, necesitamos configurarlo en el archivo default (se encuentra en /etc/apache2/sites-available) dentro de un VirtualHost
<VirtualHost *:80> # Actuamos como reverse proxy, apareciendo a los clientes # como un servidor web corriente. ProxyRequests Off # Esta parte es donde realiza el balanceo de carga # a la solicitud que se realiza, balancea en dos servidores # se define los backends <Proxy balancer://siapcluster> DefaultType application/octet-stream BalancerMember http://192.168.1.10:80 BalancerMember http://192.168.1.11:80 </Proxy> # Definimos el balancer://siapcluster/, que veremos # se trata del recurso de balance, definimos el algoritmo. ProxyPass / balancer://siapcluster/ ibmethod=byrequest \ maxattempts=3 nofailover=On # Reescbirimos la URL en las cabeceras HTTP Location, # Content-Location y URI para que en lugar de los requests # locales (frontend), figuren como remotos (backends). ProxyPassReverse / http:/192.168.1.10/ ProxyPassReverse / http:/192.168.1.11/ </VirtualHost>

la variable lbmethod tiene tres opciones byrequests, la idea detrs de este algoritmo es que distribuir las solicitudes entre los distintos backends para garantizar que cada uno recibe su parte de acuerdo al nmero de peticiones. Este es el valor predeterminado. lbfactor se da una cuota de trabajo a los backends de acuerdo al byte ponderado trfico. Este es un valor normalizado que representa la cantidad de trabajo por hacer. lbstatus es la urgencia con la cual un backend tiene que trabajar para cumplir con su cuota

Asi mismo si se desea aadir una interfaz web para ver la administracin del balanceador se debe aadir el siguiente cdigo
# Habilitamos el sencillo interfaz web de administracion del # balanceador. Convendra restringir acceso y protegerlo con # contrasea. <Location /balancer-manager> SetHandler balancer-manager Order deny,allow Allow from all </Location>

El cdigo quedara como sigue

<VirtualHost *:80> # Actuamos como reverse proxy, apareciendo a los clientes # como un servidor web corriente. ProxyRequests Off ProxyVia off ProxyPreserveHost On ProxyErrorOverride On ProxyTimeout 30 # Reescbirimos la URL en las cabeceras HTTP Location, # Content-Location y URI para que en lugar de los requests # locales (frontend), figuren como remotos (backends). ProxyPassReverse / http:/192.168.1.10/ ProxyPassReverse / http:/192.168.1.11/ # Esta parte es donde realiza el balanceo de carga # a la solicitud que se realiza, balancea en dos servidores # se define los backends #min minimo de conecciones a ser atendidas #max maximo de conecciones a ser atendidas #loadfactor factor con el cual debe dar respuesta <Proxy balancer://siapcluster> DefaultType application/octet-stream BalancerMember http://192.168.1.10:80 min=2 max=4 loadfactor=2 BalancerMember http://192.168.1.11:80 min=1 max=2 loadfactor=1 </Proxy> # Definimos el balancer://siapcluster/, que veremos # se trata del recurso de balance, definimos el algoritmo. ProxyPass /balancer-manager ! ProxyPass / balancer://siapcluster/ ibmethod=byrequest \ maxattempts=3 nofailover=On

# Habilitamos el sencillo interfaz web de administracion del # balanceador. Convendra restringir acceso y protegerlo con # contrasea. <Location /balancer-manager> SetHandler balancer-manager Order deny,allow Allow from all </Location> </VirtualHost>

Fuentes de consulta http://static.springsource.com/projects/ers/4.0/getting-started/html/ch06.html http://www.howtoforge.com/load_balancing_apache_mod_proxy_balancer http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html