You are on page 1of 5

Evolution, Asesores Profesionales C. A.

RIF. J-405419687

Balance de carga con Ngnix


1. Instalamos el servidor Ngnix
# yum install nginx
2. Luego de instalado Ngnix, modificamos la configuracin del sitio para habilitar el balance de
carga:
# vi /etc/nginx/nginx.conf
3. Agregamos al archivo los detalles de los nodos Backend:
upstream dominio {
server Ip_Nodo1;
server Ip_Nodo2;
}
4. Reiniciamos el servidor ngnix,
# service nginx restart
Adicionalmente, tambin es posible agregar una directiva para darle prioridad a cada uno de los nodos
que componen el Clster, para este caso el archivo de configuracin queda as:
upstream dominio {
server Ip_Nodo1 weight=1;
server Ip_Nodo2 weight=2;
}
Tambin es posible agregar una directiva para que Nginx verifique que los nodos se encuentran activos y
que solo envi peticiones a estos equipos, para esto simplemente usamos la directiva HASH, as:
upstream dominio {
ip_hash;
server Ip_Nodo1 weight=1;
server ip_Nodo2 weight=2 down;
}

Avenida 4 Bolvar, entre calles 17 y 18 N 17-32 oficina N 3 Mrida Estado Mrida.


Telfono +58 274 3104914, E-mail evolution.asesores@gmail.com - request.evolution@googlegroups.com

Evolution, Asesores Profesionales C. A.


RIF. J-405419687

Ademas de estas directivas, existen otras como por ejemplo:

Max_fails: El valor indicado en este parmetro, indica el nmero de intentos que fallidos de
comunicacin con el host que se deben de dar para considerarlo fuera de servicio. El valor por
defecto es 1.

Fail_timeout: Aqu nos permite indicar el tiempo en segundos en el que el nmero de intentos
fallidos max_fails debe ocurrir para que el servidor se considere fuera de servicio.

Alta Disponibilidad con Ngnix + HeartBeat


La configuracin del clster para este ejemplo es la siguiente:
nodo 1:
IP: 192.168.1.129
HOSTNAME: cluster01
nodo 2:
IP: 192.168.1.130
HOSTNAME: cluster02
IP virtual para el cluster:
IP: 192.168.1.131
Una vez configurado en los dos nodos el hostname e IPs (la IP virtual de momento no la tocamos),
pasamos directamente a la instalacin de Heartbeat y Apache, en ambos nodos deberamos instalar:
# yum install ngnix
Nota: Es necesario configurar Nginx para que escuche por la IP virtual:
Listen 192.168.1.131:80
Evitamos que httpd arranque automticamente, de esta tarea se encargar HeartBeat:
# chkconfig httpd off
Instalamos Heartbeat mediante yum:
# yum install heartbeat
Avenida 4 Bolvar, entre calles 17 y 18 N 17-32 oficina N 3 Mrida Estado Mrida.
Telfono +58 274 3104914, E-mail evolution.asesores@gmail.com - request.evolution@googlegroups.com

Evolution, Asesores Profesionales C. A.


RIF. J-405419687

Una vez instalado pasamos a la configuracin de Heartbeat. Los ficheros bsicos son authkeys, ha.cf y
haresources. La ruta en la que debemos configurarlos es /etc/ha.d/. Si necesitamos ejemplos o los
ficheros base los podemos encontrar en /usr/share/doc/heartbeat-[version]/.

ha.cf
ha.cf es el fichero en el que se especifica la configuracin global del cluster. En nuestro la configuracin
base es la siguiente:
logfile /var/log/cluster.log
logfacility local0
warntime 5
deadtime 30
initdead 120
keepalive 2
bcast eth0
udpport 694
auto_failback on
node cluster01
node cluster02
En primera instancia especificamos que el log donde se volcar toda la informacin ser
/var/log/cluster.log. Las directivas de deteccin de fallo de nodos son las siguientes:

warntime: Heartbeat avisar cuando un nodo falle tras 5 segundos.


deadtime: Hearbeat confirmar que un nodo ha cado, 30 segundos.
initdead: Tiempo mximo que Heartbeat esperar a que un nodo arranque, 60 segundos.
keepalive: Especifica cada cuanto tiempo Heartbeat enviar paquetes para comprobar la
disponibilidad de los nodos, 2 segundos.

A travs de node especificamos cada uno de los nodos que componen el cluster (sus hostname),
udpport es el puerto UDP utilizado para la comunicacin y bcast la interfaz broadcast.

authkeys
Este es el fichero en el que se configura el sistema de autenticacin entre todos los nodos del cluster. El
formato es el siguiente:
auth num
num algorithm secret
Avenida 4 Bolvar, entre calles 17 y 18 N 17-32 oficina N 3 Mrida Estado Mrida.
Telfono +58 274 3104914, E-mail evolution.asesores@gmail.com - request.evolution@googlegroups.com

Evolution, Asesores Profesionales C. A.


RIF. J-405419687

Los algoritmos disponibles son crc (1) sha1 (2) y md5 (3). Se recomienda utilizar sha1 as que lo
utilizamos para nuestro cluster. clu$ter ser la llave de autenticacin (secret):
auth 2
2 sha1 clu$ter
nicamente root debe poder leer el fichero, as que asignamos los permisos correspondientes:
# chmod 600 /etc/ha.d/authkeys

haresources
En este fichero se especifican los servicios que se movern entre los distintos nodos del cluster cuando
uno de ellos caiga. En este caso nicamente trabajaremos con httpd, en el propio fichero tenemos toda
la informacin. Le especificamos tambin la IP virtual asignada al servicio:
cluster01 192.168.1.131 nginx

Propagar cambios de configuracin entre nodos


Una vez finalizada la configuracin inicial, podemos propagar los cambios entre todos los nodos
mediante el comando ha_propagate. Hay que tener conectividad ssh/scp entre las mquinas, si no
utilizis llaves os pedir la clave ssh de los nodos:
# /usr/lib/heartbeat/ha_propagate
Propagating HA configuration files to node cluster02.
ha.cf
authkeys

100% 11KB 10.7KB/s 00:00


100% 672 0.7KB/s 00:00

Setting HA startup configuration on node cluster02.


..
...

Arrancar y probar el cluster


Una vez finalizada la configuracin ya podemos proceder a arrancar el cluster, para ello iniciamos
HeartBeat en cada uno de los nodos:
# /etc/init.d/heartbeat start
Nota: El propio HeartBeat debe iniciar Ngnix:
Avenida 4 Bolvar, entre calles 17 y 18 N 17-32 oficina N 3 Mrida Estado Mrida.
Telfono +58 274 3104914, E-mail evolution.asesores@gmail.com - request.evolution@googlegroups.com

Evolution, Asesores Profesionales C. A.


RIF. J-405419687

IPaddr[4618]: 2011/04/19_11:43:02 INFO: Resource is stopped


ResourceManager[4591]: 2011/04/19_11:43:02 info: Running /etc/ha.d/resource.d/IPaddr
192.168.1.131 start
IPaddr[4694]: 2011/04/19_11:43:02 INFO: Using calculated nic for 192.168.1.131: eth0
IPaddr[4694]: 2011/04/19_11:43:02 INFO: Using calculated netmask for 192.168.1.131: 255.255.255.0
IPaddr[4694]: 2011/04/19_11:43:03 INFO: eval ifconfig eth0:0 192.168.1.131 netmask 255.255.255.0
broadcast 192.168.1.255
IPaddr[4677]: 2011/04/19_11:43:03 INFO: Success
ResourceManager[4591]: 2011/04/19_11:43:03 info: Running /etc/init.d/httpd start
Dado que no se est montando a travs de iSCSI, NFS o alguna tecnologa similar los datos que sirve
Nginx, podemos verificar contra qu nodo del clster estamos conectando en cada momento
modificando el index.html bsico en cada uno de los nodos,
En este momento, si accedemos a http://192.168.1.131 ya deberamos poder acceder va web al servicio,
y nos indicar que es el cluster01 quien est sirviendo el contenido.
A partir de esta configuracin se pueden realizar pruebas de failover y failback tirando nodos,
levantndolos, y en definitiva, seguir probando la configuracin, tomando en cuenta que HeartBeat
permite una gran cantidad de parmetros.

Avenida 4 Bolvar, entre calles 17 y 18 N 17-32 oficina N 3 Mrida Estado Mrida.


Telfono +58 274 3104914, E-mail evolution.asesores@gmail.com - request.evolution@googlegroups.com

You might also like