HAProxy

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

Cómo 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 servidor proxy. Como equilibrador de carga, juega un papel crucial en la distribución del tráfico web entrante a través de múltiples servidores web usando 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

Direcciones IP de nombre de host
load_balancer 3.17.12.132
server_01 3.19.229.234
server_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 equilibrador 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

$ vim / etc / hosts
3.19.229.234 server_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 equilibrador de carga

3.17.12.132 equilibrador de carga

A partir de entonces, confirme que puede hacer ping al equilibrador de carga desde server_01

Y lo mismo de server_02

Además, asegúrese de poder 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, primero actualice el sistema

# actualización de yum

A continuación, instale HA Proxy como se muestra

# yum instalar haproxy

Tras la instalación exitosa, navegue hasta el directorio haproxy.

# cd / etc / haproxy

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

# mv haproxy.cfg haproxy.cfg.bak

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

vim haproxy.cfg

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

#---------------------------------------------------------------------
# Configuración global
#---------------------------------------------------------------------
global
registro 127.0.0.1 configuración local2 #Log
 
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
usuario haproxy #Haproxy ejecutándose bajo usuario y grupo "haproxy"
grupo haproxy
demonio
 
# activar el socket Unix de estadísticas
stats socket / var / lib / haproxy / stats
 
#---------------------------------------------------------------------
# valores predeterminados comunes que todas las secciones 'escuchar' y 'backend'
# usar si no está designado en su bloque
#---------------------------------------------------------------------
valores predeterminados
modo http
log global
opción httplog
opción dontlognull
opción http-server-close
opción adelante para excepto 127.0.0.0/8
opción redispatch
reintentos 3
tiempo de espera http-request 10s
cola de espera 1m
tiempo de espera conectar 10 s
tiempo de espera cliente 1m
servidor de tiempo de espera 1m
tiempo de espera http-keep-alive 10s
tiempo de espera de verificación 10 s
maxconn 3000
 
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
listen haproxy3-monitoring *: 8080 # Haproxy Monitoring se ejecuta en el puerto 8080
modo http
opción adelante para
opción httpclose
habilitación de estadísticas
estadísticas show-legends
las estadísticas se actualizan 5 s
stats uri / stats #URL para monitoreo de HAProxy
stats reino Haproxy \ Estadísticas
stats auth Password123: Password123 # Usuario y contraseña para iniciar sesión en el panel de control
administrador de estadísticas si es VERDADERO
default_backend app-main # Esto es opcionalmente para monitorear el backend
 
#---------------------------------------------------------------------
# Configuración de FrontEnd
#---------------------------------------------------------------------
frontend principal
enlazar *: 80
opción http-server-close
opción adelante para
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd round robin como algoritmo de balance
#---------------------------------------------------------------------
backend app-main
balance roundrobin # algoritmo de balance
opción httpchk HEAD / HTTP / 1.1 \ r \ nAnfitrión: \ localhost
#Compruebe que la aplicación del servidor esté activa y en buen estado: código de estado 200
servidor server_01 3.19.229.234: 80 cheque # Nginx1
servidor server_02 3.17.9.217: 80 cheque # Nginx2

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

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

# vim / 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

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

Pegue las siguientes líneas, guarde y salga

local2.= info / var / log / haproxy-access.log #Para el registro de acceso
local2.aviso / var / log / haproxy-info.log #For Service Info - Backend, loadbalancer

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 status 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:

# actualización de yum

A continuación, instale EPEL (paquetes adicionales para Enterprise Linux)

# yum install epel-release

Para instalar Nginx, ejecute el comando:

# yum instalar nginx

A continuación, inicie y habilite Nginx

# systemctl iniciar nginx
# systemctl habilitar nginx

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

Para server_01

# echo "server_01. Oye ! Bienvenido al primer servidor web "> índice.html

Para server_02

# echo "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. Así que inicie sesión en el equilibrador 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 del índice.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 balanceador de carga

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


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

Perfecto ! El equilibrio de carga distribuye 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. Sus comentarios serán muy apreciados.

Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...