Cómo configurar HAProxy en CentOS RHEL 9 y 8

5 feb 2024 3 min di lettura
Cómo configurar HAProxy en CentOS RHEL 9 y 8
Indice dei contenuti

Introducción

HAProxy es un software gratuito de código abierto que proporciona un equilibrador de carga y un servidor proxy de alta disponibilidad para aplicaciones basadas en TCP y HTTP. Es particularmente adecuado para sitios web con mucho tráfico y es compatible con un buen número de los más visitados del mundo. Configurar HAProxy en CentOS/RHEL (Red Hat Enterprise Linux) puede mejorar su infraestructura de red mejorando su rendimiento y confiabilidad.

Esta guía lo guiará a través de los pasos necesarios para instalar y configurar HAProxy en CentOS/RHEL 9/8.

Requisitos previos

  • Un servidor CentOS/RHEL 9/8
  • Un usuario no root con privilegios sudo

Paso 1: actualiza tu sistema

Antes de instalar cualquier paquete, es una buena idea actualizar el índice de paquetes de su sistema. Esto garantiza que tenga las últimas actualizaciones y parches de seguridad.

sudo dnf update

Paso 2: Instale HAProxy

HAProxy está disponible en los repositorios predeterminados de CentOS/RHEL. Instálelo usando el siguiente comando:

sudo dnf install haproxy

Paso 3: configurar HAProxy

Después de la instalación, el siguiente paso es configurar HAProxy según sus necesidades. El archivo de configuración principal para HAProxy es /etc/haproxy/haproxy.cfg. Deberá modificar este archivo con su configuración. Utilice un editor de texto como nano o vim para editar el archivo:

sudo nano /etc/haproxy/haproxy.cfg

Configuracion basica

A continuación se muestra un ejemplo de configuración básica que configura HAProxy como equilibrador de carga para dos servidores web:

global
 log /dev/log local0
 log /dev/log local1 notice
 chroot /var/lib/haproxy
 stats socket /run/haproxy/admin.sock mode 660 level admin
 stats timeout 30s
 user haproxy
 group haproxy
 daemon

 # Default SSL material locations
 ca-base /etc/ssl/certs
 crt-base /etc/ssl/private

 # Update to use only TLS 1.3 and TLS 1.2
 ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11
 ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
 ssl-default-bind-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

 defaults
 log global
 mode http
 option httplog
 option dontlognull
 timeout connect 5000ms
 timeout client 50000ms
 timeout server 50000ms
 errorfile 400 /etc/haproxy/errors/400.http
 errorfile 403 /etc/haproxy/errors/403.http
 errorfile 408 /etc/haproxy/errors/408.http
 errorfile 500 /etc/haproxy/errors/500.http
 errorfile 502 /etc/haproxy/errors/502.http
 errorfile 503 /etc/haproxy/errors/503.http
 errorfile 504 /etc/haproxy/errors/504.http

 frontend http-in
 bind *:80
 # Enable TLS 1.3 and TLS 1.2 on HTTPS connections
 bind *:443 ssl crt /etc/haproxy/certs/example.com.pem alpn h2,http/1.1
 redirect scheme https if!{ ssl_fc }
 acl url_static path_beg -i /static /images /javascript /stylesheets
 acl url_static path_end -i.jpg.gif.png.css.js

 use_backend static if url_static
 default_backend app

 backend static
 balance roundrobin
 server static1 192.168.1.101:80 check
 server static2 192.168.1.102:80 check

 backend app
 balance roundrobin
 cookie SERVERID insert indirect nocache
 server app1 192.168.1.103:80 check cookie app1
 server app2 192.168.1.104:80 check cookie app2

 listen stats
 bind *:8080
 stats enable
 stats uri /haproxy?stats
 stats hide-version
 stats auth admin:admin

Esta configuración le dice a HAProxy que escuche en el puerto 80 el tráfico HTTP entrante (http_front frontend) y que equilibre la carga entre dos servidores backend (http_back backend) utilizando el algoritmo round-robin.

La línea stats uri /haproxy?stats habilita la página de estadísticas en la URL /haproxy?stats, donde puede ver estadísticas útiles sobre el servidor HAProxy.

Guardar y Salir

Una vez que haya configurado HAProxy a su gusto, guarde el archivo y salga del editor de texto.

Paso 4: habilite e inicie HAProxy

Con HAProxy configurado, el siguiente paso es habilitarlo para que se inicie al arrancar y luego iniciar el servicio inmediatamente:

sudo systemctl enable haproxy
sudo systemctl start haproxy

Para asegurarse de que HAProxy se esté ejecutando, puede verificar su estado con:

sudo systemctl status haproxy

Paso 5: cambie la configuración de su firewall

Si tiene un firewall habilitado, deberá permitir el tráfico a través del puerto en el que escucha HAProxy. Por ejemplo, para permitir el tráfico en el puerto 80, puedes utilizar:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

Conclusión

Ha instalado y configurado correctamente HAProxy en su servidor CentOS/RHEL 9/8. HAProxy ahora está configurado para distribuir el tráfico de red entrante a servidores backend, aumentando la confiabilidad y el rendimiento de su aplicación. No olvide consultar la página de estadísticas de HAProxy con regularidad para monitorear su rendimiento y realizar los ajustes necesarios.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.