Instalar nginx con keepalived: configurarlo con una ip flotante

Os voy a mostrara como instalar un nginx con keepalived para que tengamos un proxy inverso en alta disponibilidad.

Nginx es un sofware usado como proxy inverso, cache de HTTP, y balanceador de carga. Este ultimo, es el que nos interesa pero solo esta disponible en la version de pago.

Como no tenemos presupuesto para la licencia de pago de nginx, voy a hacerlo con keepalived, que es un software de enrutamiento escrito en C, que lo que hace es por medio de una ip flotante hace un equilibrio de carga que facilita una alta disponibilidad. Solo esta disponible para sistemas linux. os dejo un enlace muy interesante.

En este caso, vamos a usar 2 servidores con una ip y una ip flotante que hará de balanceo. Todo esto sera sobre un Centos7/RedHat7:

Nodo 1

Nombre: servidor1

ip: 192.168.1.11

Nodo 2

Nombre: servidor2

ip: 192.168.1.12

IP flotante: 192.168.1.10

Bien lo primero, es dividir la instalación en 2.

servidor1

Vamos a instalar nuestro nginx

Vamos a la ruta de instalación del  nginx /etc/nginx

Dentro del nginx.con comentamos los Listen y Server_name

Ahora en conf.d creamos nuestro fichero .conf donde publicaremos nuestras webs

y creamos el fichero.

Con esto ya tenemos una web publicada en nuestro nginx

apuntar que debemos tener un servidor dns y un apache o similar donde este almacenada la web.

instalamos keepalived

Necesitamos habilitar en el kernel de linux que podamos usar la ip flotante

Bien, ya tenemos instalado nuestro keepalived y habilitada nuestra ip flotante Ahora vamos a configurarlo todo.

Lo mas sencillo es renombrar el .conf y crear un nuevo.

Dentro del keepalived.conf ponemos lo siguiente

En la primera parte si necesitamos que nos mande un mail de notificación yo lo tengo que me lo envíe a mi correo, es bastante util. Así puedes controlar el movimiento.

Ahora vamos a arrancar el keepalived y vamos a ponerlo en en arranque de linux.

Y vamos a comprobar como han quedado las ips deberíamos ver nuestra ip flotante.

Como podéis ver, nuestro adaptador  tiene 2 ips asignadas.

Una vez hecho todo esto, vamos a repetir todos los pasos en el nodo2.

servidor2

instalamos nginx

Y copiamso lo ficheros de nodo1 nginx.conf ubicado en /etc/nginx/ y en prueba.conf dentro de /etc/nginx/conf.d

instalamos el keepalived

Necesitamos habilitar la ip flotante

Renombrar el .conf y creamos uno nuevo.

Dentro del keepalive.conf ponemos lo siguiente

Hemos dejado el state en blanco y cambido la prioridad para que este sea el secundario.

Arrancamos el keepalived y lo ponemos en arranque de linux.

Vamos a comprobar como han quedado las ips. Ahora tendríamos nuestra ip flotante en nuestro servidor2 (nodo2)

Podemos o desactivar al adaptador de nuestra maquina

O simular un corte

Espero que os sirva

 

 

Deja un comentario