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 haproxyEn 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,frontendybackend. 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 defrontendybackenden 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
frontendhttp_frontescucha el puerto 80 en todas las interfaces de red.El tráfico se envía al
backendhttp_back.El
backendutiliza el algoritmoroundrobinpara distribuir las peticiones de manera equitativa entreweb1(192.168.1.10) yweb2(192.168.1.11).La opción
checkrealiza 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.cfgSi no hay errores, verás el mensaje "Configuration file is valid".
Reiniciar o iniciar el servicio:
Bashsudo systemctl restart haproxyHabilitar el servicio para que se inicie automáticamente:
Bashsudo systemctl enable haproxy
