Cómo configurar HAProxy como Load Balancer para Nginx en CentOS 8

Como Configurar Haproxy Como Load Balancer Para Nginx En Centos 8



Proxy de alta disponibilidad, también abreviado como HAProxy, es un equilibrador de carga ligero y rápido que también funciona como un servidor proxy. Como equilibrador de carga, juega un papel crucial en la distribución del tráfico web entrante a través de varios servidores web utilizando ciertos criterios. Al hacerlo, garantiza una alta disponibilidad y tolerancia a fallas en caso de que haya demasiadas solicitudes simultáneas que puedan sobrecargar un solo servidor web.

HaProxy es utilizado por sitios populares como Tumblr, GitHub y StackOverflow. En esta guía, lo guiaremos a través de la instalación de HAProxy en una configuración de servidores web que funcionan con Nginx.

Configuración de laboratorio

3 instancias de servidores CentOS 7 como se muestra







Nombre de host           Direcciones IP

equilibrador de carga      3.17.12.132
servidor_01          3.19.229.234
servidor_02          3.17.9.217

Paso 1: edite el archivo /etc/hosts para el balanceador de carga

Para comenzar, inicie sesión en el sistema del balanceador de carga y modifique el archivo /etc/hosts para incluir los nombres de host y las direcciones IP de los dos servidores web, como se muestra.



$ porque / etc. / Hospedadores
3.19.229.234   servidor_01
3.17.9.217     servidor-02



Una vez hecho esto, guarde los cambios y salga del archivo de configuración.





Ahora diríjase a cada uno de los servidores web y actualice el /etc/hosts archivo con la dirección IP y el nombre de host del balanceador de carga

3.17.12.132   equilibrador de carga

A continuación, confirme que puede hacer ping al equilibrador de carga desde server_01



Y lo mismo desde server_02

Además, asegúrese de que puede hacer ping a los servidores desde el equilibrador de carga.

Perfecto ! ¡Todos los servidores pueden comunicarse con el equilibrador de carga!

Paso 2: Instalar y configurar HA Proxy en el balanceador de carga

Debido a que HA Proxy está disponible en el repositorio oficial de CentOS, lo instalaremos usando el administrador de paquetes yum o dnf.

Pero como siempre, actualiza el sistema primero.

# actualizacion mmm

A continuación, instale HA Proxy como se muestra

# ñam instalar haproxy

Después de una instalación exitosa, navegue hasta el directorio haproxy.

# discos compactos / etc. / haproxy

La mejor práctica requiere que hagamos una copia de seguridad de cualquier archivo de configuración antes de realizar cualquier modificación. Así que haga una copia de seguridad de la haproxy.cfg archivo renombrándolo.

# m.v. haproxy.cfg haproxy.cfg.bak

A continuación, proceda y abra el archivo de configuración.

porque haproxy.cfg

Asegúrese de hacer la modificación como se muestra

#---------------------------------------------------------------------
# Configuración global
#---------------------------------------------------------------------
global
registro         127.0.0.1 local2 #Configuración de registro
 
chroot       / fue / liberación / haproxy
archivo pid / fue / correr / haproxy.pid
maxconn 4000
usuario        haproxy #Haproxy ejecutándose bajo el usuario y grupo 'haproxy'
grupo       haproxy
demonio
 
# activar estadísticas socket unix
enchufe de estadísticas / fue / liberación / haproxy / estadísticas
 
#---------------------------------------------------------------------
# predeterminados comunes que todas las secciones 'escuchar' y 'backend'
# usar si no está designado en su bloque
#---------------------------------------------------------------------
predeterminados
modo                    http
registro                     global
opción                  httplog
opción                  dontlognull
opción http-servidor-cerrar
opción reenviar para       excepto 127.0.0.0 / 8
opción                  redespacho
reintentos 3
tiempo de espera de solicitud de http    10 s
cola de tiempo de espera           1 min
tiempo de espera conectar         10 s
tiempo de espera cliente          1m
servidor de tiempo de espera          1 min
tiempo de espera http-keep-alive 10s
verificación de tiempo de espera           10 s
maxconn 3000
 
#---------------------------------------------------------------------
Configuración de monitoreo #HAProxy
#---------------------------------------------------------------------
escuchar haproxy3-supervisión * : 8080                 #Monitoreo Haproxy ejecutado en el puerto 8080
modo http
opción hacia adelante para
opción httpclose
estadísticas habilitar
Leyendas del espectáculo de estadísticas
actualización de estadísticas 5s
estadísticas uri / estadísticas #URL para monitoreo HAProxy
reino de estadísticas Haproxy\ Estadísticas
autenticación de estadísticas Contraseña123: Contraseña123 #Usuario y Contraseña para iniciar sesión en el panel de monitoreo
administrador de estadísticas si CIERTO
default_backend aplicación-principal #Esto es opcional para monitorear el backend
 
#---------------------------------------------------------------------
# Configuración de interfaz
#---------------------------------------------------------------------
interfaz principal
unir * : 80
opción http-servidor-cerrar
opción hacia adelante para
default_backend aplicación-principal
 
#---------------------------------------------------------------------
# BackEnd round robin como algoritmo de equilibrio
#---------------------------------------------------------------------
backend aplicación-principal

equilibrio rotativo #Algoritmo de equilibrio

opción httpchk HEAD / HTTP / 1.1 \r\nHost:\localhost
#Compruebe que la aplicación del servidor esté activa y en buen estado: código de estado 200

servidor servidor_01 3.19.229.234: 80 controlar #Nginx1

servidor servidor_02 3.17.9.217: 80 controlar #Nginx2

Asegúrese de modificar el nombre de host y las direcciones IP de los servidores web como se indica en las dos últimas líneas. Guarde los cambios y salga.

El siguiente paso será configurar Rsyslog para poder registrar estadísticas de HAProxy.

# porque / etc. / rsyslog.conf

Asegúrese de descomentar las líneas a continuación para permitir conexiones UDP

$ModLoad imudp
$UDPServerRun 514

A continuación, proceda y cree un nuevo archivo de configuración haproxy.conf

# porque   / etc. / rsyslog.d / haproxy.conf

Pegue las siguientes líneas, guarde y salga

local2.=información / fue / Iniciar sesión / haproxy-access.log #Para registro de acceso
local2.aviso / fue / Iniciar sesión / haproxy-info.log #Para información de servicio - Backend, equilibrador de carga

Para que los cambios surtan efecto, reinicie el demonio rsyslog como se muestra:

# systemctl reiniciar rsyslog

Luego inicie y habilite HAProxy

# systemctl iniciar rsyslog
# systemctl habilitar rsyslog

Verifique que HAProxy se esté ejecutando

# systemctl estado rsyslog

Paso 3: Instalar y configurar Nginx

  Ahora, la única parte que queda es la instalación de Nginx. Inicie sesión en cada uno de los servidores y primero actualice los paquetes del sistema:

# actualizacion mmm

Siguiente instalación  EPEL (paquetes adicionales para Enterprise Linux)

# ñam instalar liberación cálida

Para instalar Nginx, ejecute el comando:

# ñam instalar nginx

A continuación, inicie y habilite Nginx

# systemctl iniciar nginx
# systemctl habilitar nginx

Luego vamos a modificar el archivo index.html en ambos casos para demostrar o simular cómo el equilibrador de carga puede distribuir el tráfico web en ambos servidores.

Para servidor_01

# eco 'server_01. ¡Oye! Bienvenido al primer servidor web' > índice.html

Para servidor_02

# eco 'server_02. ¡Oye! Bienvenido al segundo servidor web' > índice.html

Para que se efectúen los cambios, reinicie Nginx

# systemctl reiniciar nginx

Paso 4: Probar si el balanceador de carga está funcionando

Finalmente estamos en el punto donde queremos ver si la configuración está funcionando. Inicie sesión en el balanceador de carga y ejecute el comando curl repetidamente

# rizo 3.17.12.132

Debería obtener una salida alterna en el terminal que muestre el valor de index.html de server_01 y server_02

Ahora probemos usando un navegador web. Explore la dirección IP de su balanceador de carga

http: // dirección IP del equilibrador de carga

La primera página mostrará contenido de cualquiera de los servidores web.


Ahora actualice la página web y verifique si muestra contenido del otro servidor web

Perfecto ! ¡El equilibrio de carga está distribuyendo el tráfico IP por igual entre los dos servidores web!
Esto concluye este tutorial sobre cómo puede instalar y configurar HAProxy en CentOS 8. Apreciaremos mucho sus comentarios.