Cómo configurar HaProxy como equilibrador de carga para Nginx en CentOS 8

Cómo configurar HaProxy como equilibrador de carga 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 en múltiples servidores web utilizando ciertos criterios. Al hacerlo, garantiza una alta disponibilidad y tolerancia a fallas en caso de que haya demasiadas solicitudes concurrentes que pueden sobrecargar un solo servidor web.

Haproxy es utilizado por sitios populares como Tumblr, Github y StackOverflow. En esta guía, lo llevaremos a través de la instalación de HaProxy en una configuración de servidores web que se alimentan con Nginx.

Configuración de laboratorio

3 instancias de servidores CentOS 7 como se muestra

Direcciones IP del nombre de host
load_balancer 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 equilibrador de carga

Para comenzar, inicie sesión en el sistema de equilibrio 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 Server-02

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

Ahora salga a cada uno de los servidores web y actualice el /etc/huéspedes Archivo con la dirección IP y el nombre de host del equilibrador de carga

3.17.12.132 Balancero de carga

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

Y del mismo modo de server_02

Además, asegúrese de que pueda hacer ping a los servidores del equilibrador de carga.

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

Paso 2: Instale y configure el proxy de HA en el equilibrador de carga

Debido a que el proxy de HA está disponible desde el repositorio oficial de CentOS, lo instalaremos utilizando el Yum o DNF Package Manager.

Pero como siempre, actualice el sistema primero

# Actualización de Yum

A continuación, instale el proxy de HA como se muestra

# yum install haproxy

Tras una instalación exitosa, navegue al directorio de HaProxy.

# cd /etc /haproxy

La mejor práctica requiere que realicemos una copia de seguridad de cualquier archivo de configuración antes de hacer cualquier modificación. Así que respalda el haproxi.CFG Archivo renombrándolo.

# MV haproxy.CFG HaProxy.CFG.bak

A continuación, continúe y abra el archivo de configuración

vim haproxy.CFG

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

#---------------------------------------------------------------------
# Ajustes globales
#---------------------------------------------------------------------
global
registro 127.0.0.1 configuración local2 #log
chroot/var/lib/haproxy
pidfile/var/run/haproxy.pid
Maxconn 4000
El usuario haproxy #haproxy ejecutándose en el usuario y el grupo "haproxy"
grupo haproxy
demonio
# encender estadísticas unix socket
STATS Socket/var/lib/haproxy/stats
#---------------------------------------------------------------------
# valores predeterminados comunes que todas las secciones 'escuchar' y 'back -end'
# Use si no se designa en su bloque
#---------------------------------------------------------------------
valores predeterminados
modo http
registro global
Opción httplog
Opción DontLognull
opción http-server-close
Opción hacia adelante excepto 127.0.0.0/8
Opción Redispatch
reintentos 3
tiempo de espera http-request 10s
Tiempo de espera de la cola 1m
Timeout Connect 10s
Tiempo de espera del cliente 1M
Tiempo de espera del servidor 1m
Tiempo de espera http-mantenimiento de 10s
Tiempo de espera Check 10s
Maxconn 3000
#---------------------------------------------------------------------
#Configuración de monitoreo de Haproxy
#---------------------------------------------------------------------
Escuchar HAPROXY3 Monitoreo *: 8080 #Haproxy Monitoring Ejecutar en el puerto 8080
modo http
Opción hacia adelante para
opción httpclose
Estadística habilitar
Las estadísticas muestran las leyes
Las estadísticas refrescan 5s
estadísticas uri /estadísticas #URL para monitoreo de haproxy
estadísticas reino haproxy \ estadísticas
Stats Auth Password123: contraseña123#usuario y contraseña para iniciar sesión en el tablero de monitoreo
estadísticas admin si es cierto
Default_backend App-Main #Es es opcionalmente para monitorear el backend
#---------------------------------------------------------------------
# Configuración frontend
#---------------------------------------------------------------------
frontend principal
Bind *: 80
opción http-server-close
Opción hacia adelante para
default_backend app-main
#---------------------------------------------------------------------
# Backend Round Robin como algoritmo de equilibrio
#---------------------------------------------------------------------
aplicaciones de backend-main
Balance de algoritmo de #balance #balance
Opción Httpchk Head / HTTP / 1.1 \ r \ nhost: \ localhost
#Chek La aplicación del servidor está activa y curada - Código de estado de 200
Server Server_01 3.19.229.234: 80 cheque #nginx1
Server Server_02 3.17.9.217: 80 cheque #nginx2

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

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

# vim /etc /rsyslog.confusión

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

$ Modload iMudp
$ Udpserverrun 514

A continuación, continúe y cree un nuevo archivo de configuración haproxi.confusión

# vim /etc /rsyslog.d/haproxy.confusión

Pega las siguientes líneas, guarda y sale

local2.= info/var/log/haproxy-access.Registro #para el registro de acceso
local2.aviso/var/log/haproxy-info.Registro #para la información del servicio - Backend, LoadBalancer

Para que los cambios entren en vigencia, reinicie el demonio rsyslog como se muestra:

# SystemCTL reiniciar rsyslog

Luego comience y habilite haproxy

# SystemCTL Start rsyslog
# SystemCTL Habilitar rsyslog

Verifique que Haproxy se esté ejecutando

# systemCtl Status rsyslog

Paso 3: Instale y configure Nginx

Ahora, la única parte restante 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

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

# yum instalación Epel-Lanzamiento

Para instalar NGINX, ejecute el comando:

# yum install nginx

A continuación, inicie y habilite Nginx

# SystemCTL Inicio Nginx
# SystemCTL Habilitar nginx

Entonces vamos a modificar el índice.Archivo 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. Ey ! Bienvenido al primer servidor web "> Índice.html

Para server_02

# echo "Server_02. Ey ! Bienvenido al segundo servidor web "> Índice.html

Para que los cambios sean efectuados, reinicie nginx

# SystemCTL reiniciar nginx

Paso 4: Prueba si el equilibrador de carga está funcionando

Finalmente estamos en el punto en el que queremos ver si la configuración está funcionando. Entonces, inicie sesión en el equilibrador de carga y ejecute el comando curl repetidamente

# curl 3.17.12.132

Debe obtener una salida alternativa en el terminal que muestra el valor del índice.HTML de server_01 y server_02

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

http: // load-balancer-ip-dirdress

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


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

Perfecto ! El saldo 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. Sus comentarios serán muy apreciados.