Como configurar servidor haproxy
www.onlinetis.com
Para configurar un servidor HAProxy, primero debes instalar el software, luego crear un archivo de configuración, y finalmente iniciar el servicio. A continuación, te guío a través de los pasos clave.
1. Instalación de HAProxy
El método de instalación varía según el sistema operativo.
En sistemas basados en Debian/Ubuntu:
Bashsudo apt update sudo apt install haproxy
En sistemas basados en RHEL/CentOS:
Bashsudo dnf install haproxy -y
2. Archivo de Configuración
La configuración principal de HAProxy se encuentra en el archivo /etc/haproxy/haproxy.cfg. Es crucial entender las secciones principales de este archivo: global
, defaults
, frontend
, backend
, y listen
.
global
: Aquí se definen los parámetros globales para todo el servicio, como la configuración de registro (log
), la cantidad máxima de conexiones (maxconn
), y el usuario/grupo con el que se ejecuta el proceso.defaults
: Esta sección establece los parámetros por defecto para todas las seccioneslisten
,frontend
ybackend
. Puedes especificar opciones como el modo de operación (mode
), el tiempo de espera de la conexión (timeout
), y el formato del registro.frontend
: Define un punto de entrada para las peticiones. Aquí especificas la dirección IP y el puerto que HAProxy escuchará (bind
), el nombre de la sección (frontend <nombre>
), y las reglas para manejar el tráfico.backend
: Define un grupo de servidores al que se redirigirá el tráfico. Aquí se listan los servidores reales (server <nombre> <ip>:<puerto>
), el algoritmo de balanceo de carga (balance
), y las comprobaciones de salud (check
).listen
: Combina las funciones defrontend
ybackend
en una sola sección. Es una manera sencilla de configurar la escucha y el grupo de servidores.
Ejemplo de Configuración Básica
Este ejemplo configura HAProxy para balancear la carga de tráfico web (puerto 80) entre dos servidores web.
global
log /dev/log local0
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
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_front
bind *:80
mode http
default_backend http_back
backend http_back
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
En este ejemplo:
El
frontend
http_front
escucha el puerto 80 en todas las interfaces de red.El tráfico se envía al
backend
http_back
.El
backend
utiliza el algoritmoroundrobin
para distribuir las peticiones de manera equitativa entreweb1
(192.168.1.10) yweb2
(192.168.1.11).La opción
check
realiza una comprobación de salud para asegurar que los servidores están activos.
3. Comprobación y Arranque del Servicio
Una vez que hayas modificado el archivo de configuración, es importante verificar que la sintaxis sea correcta antes de reiniciar el servicio.
Verificar la sintaxis:
Bashsudo haproxy -c -f /etc/haproxy/haproxy.cfg
Si no hay errores, verás el mensaje "Configuration file is valid".
Reiniciar o iniciar el servicio:
Bashsudo systemctl restart haproxy
Habilitar el servicio para que se inicie automáticamente:
Bashsudo systemctl enable haproxy