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:

    Bash
    sudo apt update
    sudo apt install haproxy
    
  • En sistemas basados en RHEL/CentOS:

    Bash
    sudo 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 secciones listen, frontend y backend. 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 de frontend y backend 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.

Fragmento de código
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 algoritmo roundrobin para distribuir las peticiones de manera equitativa entre web1 (192.168.1.10) y web2 (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.

  1. Verificar la sintaxis:

    Bash
    sudo haproxy -c -f /etc/haproxy/haproxy.cfg
    

    Si no hay errores, verás el mensaje "Configuration file is valid".

  2. Reiniciar o iniciar el servicio:

    Bash
    sudo systemctl restart haproxy
    
  3. Habilitar el servicio para que se inicie automáticamente:

    Bash
    sudo systemctl enable haproxy
    

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC