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 hostPaso 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.