Cómo instalar y configurar HAProxy en Rocky Linux 8
Cuando despliegas 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 la redundancia, como el equilibrio de carga, el clustering y el proxy.
HAProxy es un equilibrador de carga gratuito, de código abierto y fiable, diseñado para sitios web con mucho tráfico. Equilibra la carga del tráfico entrante distribuyéndolo entre varios servidores backend.
En este artículo te mostramos cómo instalar HAProxy en Rocky Linux 8.
Para el propósito 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 ejecute RockyLinux 8.
- Se ha configurado una contraseña de root en el servidor.
Instalar HAProxy
Por defecto, el paquete HAProxy está disponible en el repositorio por defecto de Rocky Linux 8. Puedes instalarlo con el siguiente comando:
dnf install haproxy -y
Una vez instalado el HAProxy, inicia el servicio HAProxy y permite que se inicie al reiniciar el sistema:
systemctl start haproxy
systemctl enable haproxy
Configurar HAProxy
A continuación, tendrás que editar el archivo /etc/haproxy/haproxy.cfg y modificar dos secciones frontend y backend. En la sección Frontend, tendrás que definir la IP de HAProxy, su puerto, el URI de las estadísticas y el nombre del backend. En la sección Backend, tendrás que definir el algoritmo de equilibrio de carga, el nombre del servidor backend, las IPs y el puerto.
nano /etc/haproxy/haproxy.cfg
Modifica 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
Guarda y cierra el archivo cuando hayas terminado, entonces tendrás que editar el archivo /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Descomenta las siguientes líneas:
module(load="imudp") input(type="imudp" port="514")
Guarda y cierra el archivo y luego crea el archivo haproxy.conf para rsyslog con el siguiente comando:
nano /etc/rsyslog.d/haproxy.conf
Añade las siguientes líneas:
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
A continuación, inicia el servicio rsyslog y habilítalo para que se inicie al reiniciar el sistema:
systemctl start rsyslog
systemctl enable rsyslog
Por último, reinicia el servicio HAProxy para aplicar los cambios:
systemctl restart haproxy
También puedes verificar el estado del servicio HAProxy con el siguiente comando:
systemctl status haproxy
Deberías ver la siguiente salida:
? 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 el cortafuegos
A continuación, tendrás que configurar el firewalld en todos los servidores y permitir el puerto 80 a través del firewall.
Puedes ejecutar el siguiente comando para permitir el puerto 80:
firewall-cmd --permanent --add-port=80/tcp
A continuación, recarga el servicio firewalld para aplicar los cambios.
firewall-cmd --reload
Configurar los servidores backend
A continuación, tendrás que instalar el servidor Apache en ambos servidores backend. Ejecuta el siguiente comando para instalar el servidor Apache.
dnf install httpd -y
Una vez instalado el servidor Apache, inicia el servicio Apache y habilítalo para que se inicie al reiniciar el sistema:
systemctl start httpd
systemctl enable httpd
A continuación, tendrás que modificar el archivo index.html por defecto en ambos servidores backend.
En el primer backend, edita el archivo index.html con el siguiente comando:
nano /usr/share/httpd/noindex/index.html
Elimina todas las líneas y añade la siguiente:
Welcome to First Apache Web Server!
Guarda y cierra el archivo cuando hayas terminado.
En el segundo servidor, edita el archivo index.html con el siguiente comando:
nano /usr/share/httpd/noindex/index.html
Elimina todas las líneas y añade la siguiente línea:
Welcome to Second Apache Web Server!
Guarda y cierra el archivo cuando hayas terminado.
Verificar HAProxy
Llegados a este punto, HAProxy está configurado para reenviar todas las peticiones entrantes a los servidores del backend en función del algoritmo de equilibrio de carga. Ahora, es el momento de comprobar si HAProxy funciona correctamente o no.
Abre tu navegador web y escribe la IP de HAProxy en la URL http://172.16.10.10. Deberías ver tu primera página del servidor web apache:
A continuación, actualiza de nuevo la misma página, deberías ver tu segunda página del servidor web apache:
Esto confirma que HAProxy está funcionando como se esperaba y está distribuyendo el tráfico entre dos servidores backend.
Conclusión
Enhorabuena! has instalado y configurado con éxito el equilibrador de carga HAProxy en Rocky Linux 8. Ahora puedes implementar HAProxy en el entorno de producción para conseguir un alto rendimiento y escalabilidad.