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 hostload_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 / hosts3.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 cargaA 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 yumA continuación, instale HA Proxy como se muestra
# yum instalar haproxy
Tras la instalación exitosa, navegue hasta el directorio haproxy.
# cd / etc / haproxyLa 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.bakA continuación, proceda y abra el archivo de configuración
vim haproxy.cfgAsegú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.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
# vim / etc / rsyslog.d / haproxy.confPegue las siguientes líneas, guarde y salga
local2.= info / var / log / haproxy-access.log #Para el registro de accesolocal2.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 rsyslogLuego 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 yumA continuación, instale EPEL (paquetes adicionales para Enterprise Linux)
# yum install epel-releasePara instalar Nginx, ejecute el comando:
# yum instalar nginxA 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.htmlPara server_02
# echo "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. Así que inicie sesión en el equilibrador 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 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 cargaLa 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.