Cómo instalar y configurar HAProxy en Rocky Linux 8

primer servidor

Cuando implementa una aplicaci√≥n en Internet, la disponibilidad, la escalabilidad y el rendimiento de la aplicaci√≥n son muy importantes para una mejor experiencia del usuario. Hay muchas tecnolog√≠as que introducen redundancia, como equilibrio de carga, agrupaci√≥n en cl√ļsteres y proxy.

HAProxy es un equilibrador de carga gratuito, de c√≥digo abierto y confiable dise√Īado para sitios web de alto tr√°fico. Equilibra la carga del tr√°fico entrante distribuy√©ndolo entre m√ļltiples servidores backend.

En este artículo le mostramos cómo instalar HAProxy en Rocky Linux 8.

A los efectos de este tutorial, utilizaremos la siguiente configuración:

Servidor Dirección IP

HAProxy 172.16.10.10

Backend1 172.16.10.11

Backend2 172.16.10.12

requisitos previos

  • Un servidor que ejecuta RockyLinux 8.
  • Una contrase√Īa de root est√° configurada en el servidor.

Instalar HAProxy

De forma predeterminada, el paquete HAProxy est√° disponible en el repositorio predeterminado de Rocky Linux 8. Puedes instalarlo con el siguiente comando:

dnf install haproxy -y

Una vez que HAProxy esté instalado, inicie el servicio HAProxy y habilítelo para que se inicie al reiniciar el sistema:

systemctl start haproxy
systemctl enable haproxy

Configurar HAProxy

A continuación, deberá editar el archivo /etc/haproxy/haproxy.cfg y modificar dos secciones frontend y backend. En la sección Frontend, deberá definir la IP de HAProxy, su puerto, URI de estadísticas y nombre de backend. En la sección Backend, deberá definir el algoritmo de equilibrio de carga, el nombre del servidor backend, las direcciones IP y el puerto.

nano /etc/haproxy/haproxy.cfg

Modificar las siguientes secciones:

frontend http_balancer
    bind 172.16.10.10:80
    option http-server-close
    option forwardfor
    stats uri /haproxy?stats

default_backend     Apache_webservers

backend apache_webservers
    mode        http
    balance     roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost    
    server  apache1  172.16.10.11:80  check
    server  apache2  172.16.10.12:80  check

Guarde y cierre el archivo cuando haya terminado, luego deber√° editar el archivo /etc/rsyslog.conf.

nano /etc/rsyslog.conf

Descomenta las siguientes líneas:

module(load="imudp")
input(type="imudp" port="514")

Guarde y cierre el archivo, luego cree el archivo haproxy.conf para rsyslog con el siguiente comando:

nano /etc/rsyslog.d/haproxy.conf

Agregue las siguientes líneas:

local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log

A continuación, inicie el servicio rsyslog y habilítelo para que se inicie al reiniciar el sistema:

systemctl start rsyslog
systemctl enable rsyslog

Finalmente, reinicie el servicio HAProxy para aplicar los cambios:

systemctl restart haproxy

También puede verificar el estado del servicio HAProxy con el siguiente comando:

systemctl status haproxy

Debería ver el siguiente resultado:

? haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago
  Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 44036 (haproxy)
    Tasks: 2 (limit: 12524)
   Memory: 3.1M
   CGroup: /system.slice/haproxy.service
           ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
           ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer...
Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.

Configurar cortafuegos

A continuación, deberá configurar firewalld en todos los servidores y permitir el puerto 80 a través del firewall.

Puede ejecutar el siguiente comando para permitir el puerto 80:

firewall-cmd --permanent --add-port=80/tcp

A continuación, vuelva a cargar el servicio firewalld para aplicar los cambios.

firewall-cmd --reload

Configurar servidores back-end

A continuación, deberá instalar el servidor Apache en ambos servidores backend. Ejecute el siguiente comando para instalar el servidor Apache.

dnf install httpd -y

Una vez que se haya instalado el servidor Apache, inicie el servicio Apache y habilítelo para que se inicie al reiniciar el sistema:

systemctl start httpd
systemctl enable httpd

A continuación, deberá modificar el archivo index.html predeterminado en ambos servidores backend.

En el primer backend, edite el archivo index.html con el siguiente comando:

nano /usr/share/httpd/noindex/index.html

Elimine todas las líneas y agregue la siguiente línea:

Welcome to First Apache Web Server!

Guarde y cierre el archivo cuando haya terminado.

En el segundo backend, edite el archivo index.html con el siguiente comando:

nano /usr/share/httpd/noindex/index.html

Elimine todas las líneas y agregue la siguiente línea:

Welcome to Second Apache Web Server!

Guarde y cierre el archivo cuando haya terminado.

Verificar HAProxy

En este punto, HAProxy está configurado para reenviar todas las solicitudes entrantes a los servidores backend en función del algoritmo de equilibrio de carga. Ahora es el momento de comprobar si HAProxy funciona correctamente o no.

Abra su navegador web y escriba la IP HAProxy en la URL http://172.16.10.10. Debería ver su primera página del servidor web apache: Publicidad

primer servidor

A continuación, actualice la misma página nuevamente, debería ver su segunda página del servidor web apache:

Segundo servidor

Esto confirma que HAProxy funciona como se esperaba y distribuye el tr√°fico entre dos servidores backend.

Conclusión

¡Felicidades! ha instalado y configurado con éxito el balanceador de carga HAProxy en Rocky Linux 8. Ahora puede implementar HAProxy en el entorno de producción para lograr un alto rendimiento y escalabilidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *