Cómo instalar y configurar HAProxy en Ubuntu 16.04
¿Busca equilibrar la carga de sus servidores web? Aquí se explica cómo hacerlo con HAProxy en Ubuntu Server 16.04.
Si sirve su sitio web localmente y está buscando una manera de agregar una capa de equilibrio de carga y alta disponibilidad a su producto, HAProxy es una solución de código abierto para aplicaciones basadas en TCP y HTTP. La solución proporciona conectividad transparente, descarga del servidor, aplicación de políticas, aceleración de la conexión y más. Si le preocupa que agregar una capa de este tipo a su servidor web sea demasiado complicado, no se preocupe. Instalar y configurar HAProxy es muy simple.
Código abierto: cobertura de lectura obligada
Me gustaría guiarlo a través del proceso de instalación de HAProxy en una plataforma de servidor Ubuntu 16.04 y configurarlo para que funcione con tres servidores web (cada uno con el mismo contenido para el equilibrio de carga). Por el bien de nuestro tutorial, llamaremos a estos servidores:
- haproxy.local IP 192.168.1.100
- web1.local en IP 192.168.1.101
- web2.local en IP 192.168.1.102
- web3.local en IP 192.168.1.103
Instalar
Lo primero que debemos hacer es instalar HAProxy en nuestro servidor Ubuntu haproxy.local. Esto se hace con el siguiente comando:
sudo apt-get install haproxy
Una vez instalado, puede verificar para asegurarse de que HAProxy esté usando el siguiente comando:
haproxy -v
El comando anterior debe generar la versión de HAProxy y la información de derechos de autor (Figura A).
Figura A
configuración
NOTA: Deberá cambiar la configuración a continuación para adaptarla a sus necesidades. Los ejemplos que muestro son solo para fines educativos.
Lo primero que debe hacer es agregar entradas para HAProxy y cada servidor web al archivo /etc/hosts en haproxy.local. Abra el archivo con el comando sudo nano /etc/hosts. Las entradas se verán así:
192.168.1.100 haproxy.local
€‹192.168.1.101 web1.local
€‹192.168.1.102 web2.local
€‹192.168.1.103 web3.local
Guarde y cierre el archivo. También configuramos el nombre de host del servidor HAProxy. Ejecute el comando sudo nano /etc/hostname y cambie el nombre de host predeterminado a haproxy.local. Ahora tenemos que habilitar haproxy para que se inicie en el arranque. Ejecute el comando sudo nano /etc/default/haproxy y agregue la siguiente línea debajo de la opción #CONFIG= (Figura B):
habilitar = 1
Figura B
Inicie el servicio con el siguiente comando:
servicio sudo inicio haproxy
Ahora tenemos que abrir el archivo de configuración de HAProxy con el comando sudo nano /etc/haproxy/haproxy.cfg. Desea omitir las secciones Global y Predeterminado (déjelas como están). En la parte inferior de este archivo, agregaremos una sección de frontend (para el servidor HAProxy) y una sección de backend (para nuestro servidor web). La sección frontal se ve así:
Servidor_local front-end
enlazar 192.168.1.100:80
modo http
default_backend Mis_servidores_web
La parte de backend se ve así:
Backend Mis_servidores_web
modo http
ciclo de equilibrio
opción de reenvío
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https si { ssl_fc }
OPCIONES httpchk HEAD/HTTP/1.1rnHost:localhost
servidor web1.local 192.168.1.101:80
servidor web2.local 192.168.1.102:80
servidor web3.local 192.168.1.103:80
Agregue la sección anterior y guarde/cierre el archivo de configuración.
Ahora revisamos el archivo de configuración con el comando:
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Las pruebas deberían regresar diciendo que la configuración funcionó; luego puede reiniciar el servicio con:
reinicio haproxy del servicio sudo
HAProxy ahora equilibra la carga de sus servidores web de forma rotativa.
configuración de prueba
Puede probar para asegurarse de que HAProxy no esté equilibrando el servidor web con el siguiente comando:
Sin embargo, es cierto; curl sleep 1; hecho
Esto debería mostrar el archivo index.html de cada servidor web en un bucle. Creo un archivo index.html fácil de usar en cada uno de mis servidores web con el siguiente contenido:
donde X es el número del servidor web de alojamiento (es decir, web1, web2 y web3).La salida del comando de prueba parece Figura C.
Figura C
El comando continuará ejecutándose hasta que emita la combinación de teclas [Ctrl]+[c]También puede apuntar su navegador web a la dirección IP del servidor HAProxy y lo redirigirá a uno de los servidores web, mostrando el equilibrio de carga en acción de forma rotativa.
Equilibrio de carga de sitio web simple
Sería difícil encontrar una manera más fácil de agregar equilibrio de carga a su servidor web. Con él mejorarás el rendimiento y la fiabilidad de tu servidor web. Para obtener más información sobre las capacidades de HAProxy, emita el comando man haproxy y lea las páginas man.