Balanceo de carga con Apache 2 + mod_proxy
Existen otras opciones a la hora de instalar un balanceador de carga, como Linux Virtual Server, finalmente me he decantado por utilizar mod_proxy debido a su sencillez y porque no es necesario actualizar el Kernel.
El escenario es el siguiente:

En las 3 máquinas es necesario tener instalado Apache 2 y en la máquina apache-balancer hay que tener activos los módulos proxy_balancer y proxy_http, para ello ejecutamos:
a2enmod proxy_balancer
a2enmod proxy_http
Antes de nada debemos preparar el fichero /etc/hosts de la máquina apache-balancer. Añadimos lo siguiente:
192.168.1.11 nodo1.mydomain.com
192.168.1.12 nodo2.mydomain.com
Ahora pasaremos a configurar el balanceo, para ello crea un sitio nuevo o utiliza el sitio por defecto (/etc/apache2/sites-available/default) y añade esta configuración antes de </VirtualHost> :
# cluster member 1
BalancerMember http://nodo1.mydomain.com:80 route=lb1# cluster member 2
BalancerMember http://nodo2.mydomain.com:80 route=lb2ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ lbmethod=byrequests stickysession=BALANCEID
ProxyPassReverse / http://nodo1.mydomain.com/
ProxyPassReverse / http://nodo2.mydomain.com/
Guardamos el fichero y reiniciamos el Apache.
Con la opción stickysession=BALANCEID lo que conseguimos es pasar la variable de sesión al servidor dónde nos lleve el balanceador y asi permanecer en el mismo durante toda la sesión aunque actualicemos.
Para ello tenemos que configurar los nodos para que reciban la variable de sesión, editamos la configuración del VirtualHost y añadimos:
RewriteEngine On
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.mydomain.com]
En el segundo nodo habría que poner lb2.
Reiniciamos los Apaches y ya deberíamos tener el balanceador funcionando
Para probar puedes crearte un fichero distinto en cada máquina y borrar las sesiones autenticadas antes de recargar. En FireFox (Ctrl+Mayús.+Supr).







