Resumen
Cubriremos los pasos para configurar el balanceador de carga HAProxy. HAProxy puede ejecutarse con instrucciones de operación por turnos y en modo de conmutación por error, pero también puede ejecutarse con ambos al mismo tiempo, lo que garantiza HA (alta disponibilidad). Además de ejecutar HAProxy solo en modo de operación por turnos, algunos escenarios de alta disponibilidad requieren conmutación por error en los que desea tener un servidor de respaldo o servidores para los servidores principales que sirven a un sitio web o una aplicación para un entorno de alta disponibilidad más confiable y con un mantenimiento más sencillo.
Aparte de eso, HAProxy también puede ejecutarse como un paso ssl que se usa para cifrar todo el tráfico entrante en su infraestructura que se cubre en esta publicación (usando certbot y encriptemos ssl). En esta publicación, se cubren las instrucciones y la configuración de HAProxy para escenarios en los que instala HAProxy directamente en un servidor (bare metal o VM), en otras palabras, no en un contenedor.
Si también está interesado en cómo agregar SSL a su HAProxy, eso se trata en esta publicación. También podemos configurar el balanceador de carga haproxy con un cifrado SSL/HTTPS y tener un tráfico de balanceo de carga seguro.
Modo turnos
El algoritmo round-robin es el conjunto de instrucciones para dividir el tráfico en partes iguales (en este ejemplo), lo que significa que, si tiene dos servidores, ambos servidores recibirán tráfico por igual o, en otras palabras, round-robin se asegurará de que ambos servidores obtengan igual cantidad de tráfico y de esa manera asegurarse de que los servidores y el ancho de banda no estén sobrecargados.
Modo de conmutación por error
Como se mencionó anteriormente, en el modo de conmutación por error, asigna a HAProxy qué servidor será el servidor principal, que recibirá el tráfico y también un servidor de respaldo que se hará cargo del tráfico de recepción si el servidor principal deja de funcionar. Es decir, cuando el servidor principal deja de funcionar, el servidor de respaldo se hace cargo y reemplaza al servidor principal hasta que vuelve a estar en línea, lo que reduce el tiempo de inactividad al mínimo.
Esto también es útil cuando se necesita realizar el mantenimiento del servidor, por lo que cuando ejecuta la actualización en un servidor o necesita reiniciarse, el otro servidor estará en funcionamiento y asumirá la función de servidor principal y continuará. servir el sitio/aplicación.
Configurar balanceador de carga HAProxy
Configuración de conmutación por error
Las direcciones IP de la siguiente configuración se utilizan como ejemplo. La configuración es bastante sencilla. En el archivo HAProxy cfg, agregue una configuración como esta justo debajo de la configuración predeterminada:
frontend haproxy bind 10.0.51.119:80 mode http default_backend test_site backend test_site mode http server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2
La parte frontal de la configuración es HAProxy. Vincule HAProxy con su dirección IP y número de puerto (puerto de servicio). En este ejemplo, estamos usando el puerto 80 para HTTP. Si su HAProxy está expuesto públicamente en Internet, utilice la dirección IP pública de HAProxy.
Definir para el frontend de haproxy que tiene un backend, donde configuramos y agregamos servidores.
En este ejemplo, agregamos dos servidores para el backend haproxy. Testserver 1 es el servidor principal y testserver2 es el servidor de respaldo. También aclararemos los parámetros agregados en los servidores:
server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2
En ambos servidores, agregamos los intervalos de verificación en línea del servidor. Para el servidor de prueba 1, si deja de responder después de 5 segundos con 3 comprobaciones (3 comprobaciones en el intervalo de 5 segundos), se marcará como fuera de línea y el servidor de respaldo tomará el control. Si testserver1 vuelve a estar en línea, se hará cargo después de 2 comprobaciones.
Se agregan los mismos parámetros de verificación para el servidor de respaldo.
Configuración por turnos
HAProxy tiene las instrucciones de round-robin ya integradas, por lo que en la parte respaldada de la configuración solo es necesario agregar la línea de configuración:balance roundrobin.
Como en la siguiente configuración:
frontend haproxy bind 10.0.51.119:80 mode http default_backend test_site backend test_site balance roundrobin mode http server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2
Conmutación por error + turno rotatorio
Mencionamos que HAProxy se puede configurar con un algoritmo de turno rotativo y también para tener un servidor de conmutación por error. Para esta configuración, se recomienda tener más servidores, los servidores primarios en los que equilibrar la carga del tráfico entrante y un servidor de conmutación por error (respaldo) separado para asumir el control si los servidores primarios se caen. La configuración para este tipo de instalación sería algo como esto:
backend test_site balance roundrobin mode http server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 server testserver2 10.0.51.120:80 check inter 5s rise 3 fall 2 server testserver3 10.0.51.121:80 check backup inter 5s rise 3 fall 2
Entonces, en esta configuración, agregamos un tercer servidor, que asignamos en HAProxy para que actúe como servidor de respaldo, mientras que los dos primeros actuarán como servidores principales y HAProxy equilibrará la carga del tráfico en ellos.
Resumen
Estos fueron los ejemplos de cómo configurar el balanceador de carga HAProxy. Esto fue solo un par de ejemplos de cómo se configura más comúnmente. Si también está interesado en cómo agregar SSL a su HAProxy, eso se trata en esta publicación. Espero que la publicación te sea útil.