¿Qué es HAProxy?
HAProxy es un equilibrador de carga ligero con código de fuente abierta. Puede usarlo para la infraestructura de tolerancia a fallas construida u "ocultar" la "ubicación" real del proyecto por razones de seguridad. En este artículo, describiré cómo implementar un equilibrador de carga para un proyecto web, ubicado en dos servidores independientes.
Requerimientos básicos
Si desea utilizar HAProxy, debe asegurarse de que su infraestructura cumpla con las siguientes condiciones:
- Necesita al menos tres servidores: dos de ellos como "servidores centrales" de su proyecto y el último como equilibrador HAProxy;
- Nombre de dominio con registros A "apuntados" a la IP del balanceador;
- El contenido de su sitio web debe "implementarse" en ambos servidores web.
Preparación de la red
Antes de iniciar la configuración de HAProxy, debemos definir algunas "variables", como las direcciones IP y los nombres de los servidores. Así que la instrucción paso a paso es:
- Crear tres servidores a través de cliárea de entrada. Dos de ellos funcionarán como "backend", el tercer servidor es el equilibrador HAProxy. Esquema de infraestructura final en la siguiente imagen:
- Cambios / etc / hosts archivos en cada tres servidores, asocie las direcciones IP con los nombres de host de los servidores. Luego verifique la accesibilidad de los servidores, ejecute SSH-consola al servidor haproxy y envía algunos paquetes ICMP a los trabajadores "backend";
cat <<EOF >> /etc/hosts
<backend_server_one_IP> <backend_server_one_hostname>
<backend_server_two_IP> <backend_server_two_hostname>
<haproxy_server_IP> <haproxy_server_hostname>
EOF
ping <LAN_servers_IPs>
- Crear firewall regla para bloquear todo el tráfico entrante a los servidores "backend", además de haproxy. Opcional, para que la gestión sea más cómoda, puede incluir en la lista blanca su propia IP. La forma más fácil de hacer esto: vaya a la configuración de detalles de su servidor, agregue las reglas y click a la SAVE botón. Recuerde, las reglas de permiso deben establecerse antes de denegar.
Despliegue de sitios web
- Si incluyó su propia IP en la lista blanca como se describe, la forma más fácil de implementar un servidor web y administrar sitios es instalar cualquier panel web, por ejemplo, HestiaCP. Instálelo en el primer servidor "backend" como se describe esta página, luego autorice en el panel y cree un usuario sin privilegios;
- Inicie sesión como esta cuenta;
- Crear sitio web;
- Repita la implementación del sitio web en el segundo servidor "backend";
Configuración de HAProxy
Ahora es el momento de instalar el balanceador de carga. Por favor, siga estos:
- Inicie sesión en la consola del servidor HAProxy, luego actualice los paquetes existentes;
apt-get update; apt upgrade -y
- Instale el software del equilibrador;
apt-get install haproxy -y
- Edite la configuración de HAProxy, solo agregue el código seguido dentro;
frontend haproxy_web
bind <haproxy_IP>:80
default_backend web_back
mode http
backend web_back
balance roundrobin
server <backend_server_one_hostname> <backend_server_one_IP>:80
server <backend_server_two_hostname> <backend_server_two_IP>:80
- Habilite e inicie el servicio HAProxy;
service haproxy start; systemctl enable haproxy
Comprobación del equilibrador
Ahora puede abrir su sitio web en el navegador. Se abrirá con éxito, pero no puede asegurarse de que el balanceador funcione bien. Para fines de prueba, puede hacer lo siguiente:
- Inicie sesión en el servidor "backend" a través de SSH, vaya al directorio del sitio web y cambie el nombre del archivo de índice;
cd <website_root_dir>
mv <index_filename> <index_filename.bkp>
- Cree un nuevo archivo de índice con la IP del servidor;
echo $(hostname) > index file
- Inicie sesión en el otro servidor "backend" a través de SSH y cambie el nombre del archivo de índice también;
- Abra su sitio web en el navegador, luego "actualice" la página varias veces. Ya verás una experiencia diferente información. Significa que el equilibrador está funcionando;
- Devolver los archivos de índice "originales":
rm <index file>
mv <index_filename.bkp> <index_filename>
Finalmente
Después de leer este artículo, sabía qué es HAProxy y puede instalar este equilibrador de carga en el servidor bajo Ubuntu 20.04 SO.