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 cargaA 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 mmmA continuación, instale HA Proxy como se muestra
# ñam instalar haproxyDespués de una instalación exitosa, navegue hasta el directorio haproxy.
# discos compactos / etc. / haproxyLa 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.bakA continuación, proceda y abra el archivo de configuración.
porque haproxy.cfgAsegú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.confAsegú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.confPegue las siguientes líneas, guarde y salga
local2.=información / fue / Iniciar sesión / haproxy-access.log #Para registro de accesolocal2.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 rsyslogLuego inicie y habilite HAProxy
# systemctl iniciar rsyslog# systemctl habilitar rsyslog
Verifique que HAProxy se esté ejecutando
# systemctl estado rsyslogPaso 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 mmmSiguiente instalación EPEL (paquetes adicionales para Enterprise Linux)
# ñam instalar liberación cálidaPara instalar Nginx, ejecute el comando:
# ñam instalar nginxA 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.htmlPara servidor_02
# eco 'server_02. ¡Oye! Bienvenido al segundo servidor web' > índice.htmlPara que se efectúen los cambios, reinicie Nginx
# systemctl reiniciar nginxPaso 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.132Deberí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 cargaLa 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.