Probando balanceador HAProxy
Vamos a realizar una prueba básica de cómo configurar y probar un HAProxy que balancea las conexiones de dos servidores Nginx.
Vamos el esquema de las máquinas:
haproxy 192.168.6.150
Nginx-01 192.168.6.151
Nginx-02 192.168.6.152
Lo primero que tenemos que realizar es crear 3 máquinas virtuales en VirtualBox en este caso he utilizado Ubuntu 14, también podríamos utilizar Debian, CentOS…
Máquinas Nginx
En las dos máquinas nginx instalamos el propio servidor web:
sudo apt-get install nginx
Editamos el archivo index (es el archivo predefinido que muestra en el navegador) de cada servidor web
nano /usr/share/nginx/html/index.html
Borramos el contenido y escribimos:
En nginx-01:
Este es el servidor01 nginx
Hostname: nginx-01 (192.168.6.151)
En nginx-02:
Este es el servidor02 nginx
Hostname: nginx-02 (192.168.6.152)
Asignar IP estatica en las tres máquinas
- Establecer la red en VirtualBox en modo adaptador puente.
Recuerda: en las tres máquinas
- Editar el archivo interfaces de las dos máquinas situado en /etc/network/interfaces quedando de la siguiente forma:
Comprobación funcionamiento Nginx
Ahora si nos vamos a nuestro equipo local y escribimos en la barra del navegador 192.168.6.151 o 192.168.6.152 vamos a ver el archivo index.html que hemos editado previamente en cada una de las máquinas nginx
Instalar HAProxy en la máquina haproxy
sudo apt-cache policy haproxy
Vemos Installed: (none) y Candidate: 1.4.24-2ubuntu0.4
sudo add-apt-repository ppa:vbernat/haproxy-1.6
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-cache policy haproxy
Vemos que candidate ahora es: 1.6.5-1ppa1-trusty
sudo apt-get install haproxy
Editamos configuración: nano /etc/haproxy/haproxy.cfg
quedando de la siguiente forma.
global
log /dev/log local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
listen http_proxy
bind *:80
mode http
stats enable
stats uri /haproxy?stats
balance roundrobin
server webserver01 192.168.6.151:80 check #nuestro servidor 1
server webserver02 192.168.6.152:80 check #nuestro servidor 2
Conclusión
Con esta configuración ya el servidor haproxy balancea los dos servidores, lo comprobamos escribiendo en nuestro navegador la IP de la máquina balanceadora 192.168.6.150, si actualizamos la página veremos que una vez balancea a la máquina nginx-01 y otra a la nginx-02, es decir nos va a mostrar el index.html de nginx-01 y luego de nginx-02.