Instale y configure HaProxy en Rhel 8 / Centos 8 Linux

Instale y configure HaProxy en Rhel 8 / Centos 8 Linux

Haproxy o proxy de alta disponibilidad es un balance de carga TCP y HTTP de código abierto y software de servidor proxy. Haproxy ha sido escrito por Willy Tarreau en C, admite SSL, Compresiones, Keep-Alive, Formatos de registro personalizados y reescritura de encabezado. HaProxy es un servidor proxy rápido y liviano y un equilibrador de carga con una pequeña huella de memoria y un bajo uso de CPU. Es utilizado por sitios grandes como GitHub, Stackoverflow, Reddit, Tumblr, Twitter y otros. Se ha convertido en el balance de carga de software más popular y el servidor proxy en los últimos años.

En este tutorial, superará la instalación y configuración de HaProxy en Rhel 8 / Centos 8. Instalaremos HaProxy en un solo servidor y luego instalaremos el servidor web NGINX en los otros servidores. Haproxy actuará como un equilibrador de carga para los servidores web Nginx.

En este tutorial aprenderás:

  • Arquitectura y conceptos de Haproxy
  • Configurar el archivo hosts para la resolución de nombres
  • Instalar y configurar haproxy
  • Instalar y configurar nginx
  • Prueba de la función de equilibrio de carga
  • Acceda a la URL de estadísticas de Haproxy

Arquitectura haproxi.

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema RHEL 8 / CENTOS 8
Software Haproxy, nginx
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Arquitectura y conceptos de Haproxy

HaProxy puede ejecutarse en dos modos: Modo TCP Layer 4 y HTTP Mode Layer 7. En el modo TCP de la capa 4, HaProxy reenvía los paquetes TCP RAW desde el cliente a los servidores de aplicaciones. En el modo HTTP de la capa 7, HaProxy está analizando el encabezado HTTP antes de reenviarlos a los servidores de aplicaciones. En este tutorial, utilizaremos NGINX como servidor web que admite el modo HTTP de capa 7.

Equilibrio de carga de capa 4. Equilibrio de carga de la capa 7.



El algoritmo de equilibrio es el algoritmo que ha utilizado HaProxy para seleccionar el servidor al hacer el equilibrio de carga. Los siguientes modos están disponibles:

Montaña redonda

Este es el algoritmo de equilibrio más simple. Para cada nueva conexión, será manejado por el próximo servidor de backend. Si se alcanza el último servidor de backend en la lista, comenzará nuevamente desde la parte superior de la lista de backend.

Mínimo

La nueva conexión será manejada por el servidor de backend con menor cantidad de conexiones. Esto es útil cuando el tiempo y la carga de las solicitudes varían mucho.

Fuente

Esto es para sesiones adhesivas, la IP del cliente se ha asaltado para determinar el servidor de back -end que recibió la última solicitud de esta IP. Por lo tanto, Banckend2 manejará una IP A, y Banckend2 lo maneja siempre para no interrumpir las sesiones.

Configurar el archivo hosts para la resolución de nombres

Inicie sesión en el servidor de equilibrio de carga y edite el /etc/huéspedes Archivo y Haproxy LoadBalancer, Nginx1, Nginx2 Host Names. Copie el mismo archivo en otros dos nodos Nginx y verifique la conectividad de la red a través de Ping Comand.

# vim /etc /hosts
 192.168.1.108 LoadBalancer.ejemplo.com 192.168.1.104 nginx1.ejemplo.com 192.168.1.105 nginx2.ejemplo.comunicarse 
Copiar

Instalar y configurar haproxy

HaProxy está disponible en el repositorio Rhel 8 / CentOS 8, por lo tanto, inicie sesión en el servidor LoadBalancer e instale el paquete HAPROXY con este comando yum.

# yum install haproxy

Una vez instalado con éxito, puede usar el siguiente comando a continuación para verificar la instalación.

# yum información haproxy
# yum información haproxy actualizando repositorios de gestión de suscripción. Actualización de repositorios de gestión de suscripción. Últimos metadatos Verificación de vencimiento: 0:06:03 Hace el sábado 16 de marzo de 2019 11:40:24 PM +04. Paquetes instalados Nombre: Haproxy Versión: 1.8.14 Lanzamiento: 1.El8 Arch: x86_64 Tamaño: 4.1 m Fuente: HaProxy-1.8.14-1.El8.SRC.RPM Repo: @System From Repo: RHEL-8-FOR-X86_64-APPSTREAM-BETA-RPMS Resumen: Haproxy Inverso Inverse para entornos de alta disponibilidad URL: http: // www.haproxi.org/ licencia: GPLV2+ Descripción: HaProxy es un proxy inverso TCP/ HTTP que es particularmente adecuado para los entornos de disponibilidad: entornos de disponibilidad. De hecho, puede :: - Ruta las solicitudes HTTP dependiendo de las cookies asignadas estáticamente: - Extienda la carga entre varios servidores mientras asegura la persistencia del servidor: mediante el uso de cookies HTTP: - Cambie a los servidores de copia de seguridad en el caso de que un principal falle: - Aceptar conexiones a puertos especiales dedicados al monitoreo del servicio: - Deje de aceptar las conexiones sin romper los existentes: - Agregar, modificar y eliminar los encabezados HTTP en ambas direcciones: - Bloquear solicitudes que coinciden con los patrones particulares: - Informe el estado detallado a los usuarios autenticados de un URI: interceptado desde la aplicación 

Cuando termine la instalación, vaya a la /etc/haproxy/ directorio y copia de seguridad del archivo de configuración original.



# cd/etc/haproxy/ # cp haproxy.CFG HaProxy.CFG.oriente 

A continuación, haga los siguientes cambios en el archivo de configuración de HaProxy haproxi.CFG con cualquiera de los editor.

#------------------------------------------------- -------------------- # Configuración de ejemplo para una posible aplicación web. Consulte las # opciones de configuración completas en línea. # # https: // www.haproxi.org/descargar/1.8/doc/configuración.TXT # #----------------------------------------------- ---------------------- #--------------------------- ------------------------------------------ # Ajustes globales #---- -------------------------------------------------- --------------- Global # para que estos mensajes terminen en/var/log/haproxy.Registro Usted necesitará: # # 1) Configurar syslog para aceptar eventos de registro de red. Esto se hace # agregando la opción '-r' a las syslogd_options en #/etc/sysconfig/syslog # 2) Configure los eventos locales2 para ir a la/var/log/haproxyy.archivo de registro. Se puede agregar una línea como la siguiente a #/etc/sysconfig/syslog # # local2.*/var/log/haproxy.Registro # Registro 127.0.0.1 local2 chroot/var/lib/haproxy pidfile/var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # activar estadísticas estadísticas de socket unix socket/var/lib/haproxy/stats # Utilice el perfil de criptomotores de todo el sistema ssl-default-bind-cipher = Sistema #----------------------------------------------- ----------------- -------------------------------------------------- -------------.0.0.0/8 opción Redispatch Reinties 3 Tiempo de espera http-request 10s Tiempo de espera de 10s 1M Tiempo de espera Connect 10s Tiempo de espera Cliente 1M Tiempo de espera 1M Tiempo de espera Http-Keep-Alive 10s Tiempo de espera Check 10s MaxConn 3000 #----------------- -------------------------------------------------- ------ # HAPROXY MONITORING CONFIG # --------------------------------------- ------------------------------ Estadísticas de escucha Bind LoadBalancer.ejemplo.com: 8080 # HAPROXY MONITORIZACIÓN Ejecute en el puerto 8080 Opción Http Opción Avance para la opción HttpClose Estadísticas Habilitar las estadísticas Mostrar las estadísticas de las estadísticas Actualización 5S Estadísticas Uri /Estadísticas # URL para HAPROXY Monitoreo Estadísticas Realm Haproxy \ Estadísticas Estadísticas Auth Admin: Admin # Usuario y contraseña de inicio de sesión para inicio de sesión al tablero de monitoreo #stats admin si verdadero default_backend loadbalancer #Esto es opcionalmente para monitorear el backend #------------------------------------ -------------------------------------- # Frontend principal que proxy a los backends # --- -------------------------------------------------- ---------------- Frontend LoadBalancer Bind LoadBalancer.ejemplo.com: 80 #acl url_static path_beg -i /static /images /javascript /stylesheets #acl url_static path_end -i -i .JPG .gif .png .CSS .JS #use_backend static if url_static opción http-server-close opción hacia adelante para default_backend loadbalancer #--------------------------------- ------------------------------------ # Backend estático para servir imágenes, hojas de estilo y tal #- -------------------------------------------------- -------------.0.0.1: 4331 Check #--------------------------------------------- ------------------------ # Round Robin Balancing entre los diversos backends # ----------------- -------------------------------------------------- - Backend LoadBalancer Balance RoundRobin # Balance Algoritmo Opción HTTPCHK Cabeza / http / 1.1 \ r \ nhost: \ localhost # Verifique que la aplicación del servidor esté activa y curada - 200 Código de estado Servidor Nginx1.ejemplo.com 192.168.1.104: 80 verifica # nginx servidor1 servidor nginx2.ejemplo.com 192.168.1.105: 80 Verifique # NGNIX Server2 

Guarde este archivo de configuración y salga.

Ahora, configuraremos el demonio rsyslog para registrar las estadísticas de haproxy. Editar el rsyslog.confusión Archivo para habilitar el puerto UDP 514 para ser utilizado por RSYSLOG. Abra el archivo de configuración de rsyslog y la falta de comment las líneas para habilitar la conexión UDP.

# vim /etc /rsyslog.confusión
módulo (carga = "imudp") # debe hacerse solo una vez entrada (type = "iMudp" puerto = "514") 

Guarde el archivo con los cambios anteriores y salga. Luego cree un nuevo archivo de configuración de HaProxy para RSYSLOG y agregue las entradas a continuación en ese archivo.

# cd /etc /rsyslog.D/ # VI HaProxy.confusión 
local2.= info/var/log/haproxy-access.Registro # para acceder registro local2.aviso/var/log/haproxy-info.Registro # para información del servicio - Backend, LoadBalancer 

Ahora reinicie rsyslog y luego comience el servicio haproxy y agregue haproxy para comenzar en el momento del arranque.

# SystemCTL reiniciar Rsyslog # SystemCTL Start HaProxy # SystemCtl Habilitar HaProxy 

Instalar y configurar nginx

Nginx ya es la parte del repositorio Rhel 8 / Centos 8 existente y se puede instalar con el siguiente comando.

# yum install nginx

Una vez instalado, puede verificar la instalación con la ayuda de este comando.

# yum información nginx


# yum info nginx actualización de repositorios de gestión de suscripción. Actualización de repositorios de gestión de suscripción. Últimos metadatos Verificación de vencimiento: 0:06:14 Hace el sábado 16 de marzo de 2019 11:40:24 PM +04. Paquetes instalados Nombre: Nginx Epoch: 1 Versión: 1.14.0 Lanzamiento: 3.El8+1631+BA902CF0 Arch: x86_64 Tamaño: 568 K Fuente: Nginx-1.14.0-3.EL8+1631+BA902CF0.SRC.RPM Repo: RHEL-8-FOR-X86_64-APPSTREAM-BETA-RPMS Resumen: un servidor web de alto rendimiento y una url de servidor proxy inverso: http: // nginx.Org/ Licencia: BSD Descripción: Nginx es un servidor web y un servidor proxy inverso para HTTP, SMTP, POP3 y: Protocolos IMAP, con un fuerte enfoque en una alta concurrencia, rendimiento y bajo: uso de la memoria. 

Una vez que se instale nginx, vaya al directorio web y cambie el índice.html Archivo en consecuencia. Asegúrese de hacer los pasos a continuación en Nginx1 y Nginx2 Server.

# CD/usr/share/nginx/html # ls -lrth total 20k -rw-r-r---. 1 raíz de la raíz 2.8k 31 de octubre de 2016 PoweredBy.PNG -RW-R-R--. 1 raíz raíz 368 31 de octubre de 2016 nginx-logo.PNG -RW-R-R--. 1 raíz raíz 3.7k 16 de marzo 20:39 50x.html -rw-r-r--. 1 raíz raíz 3.6k 16 de marzo 20:39 404.html -rw-r-r--. 1 raíz raíz 3.7k 16 de marzo 20:42 Índice.html 

A continuación, agregue Nginx para comenzar en el momento del arranque y luego inicie el demonio con los comandos a continuación.

# SystemCTL Habilitar Nginx # SystemCTL Inicio Nginx 

Prueba de la función de equilibrio de carga

Las pruebas se pueden hacer navegando y accediendo a la IP 192 de LoadBalancer.168.1.108 (para mi caso) y verá una vez que va al nodo nginx1 y la segunda vez va al nodo Nginx en una forma de round robin.

Página web en Nginx Node1. Página web en Nginx Node2.

También puedes verificar el /var/log/haproxy-access.registro Para obtener la información detallada sobre el equilibrio de carga.

Acceda a la URL de estadísticas de Haproxy

Acceda al tablero para el informe estadístico de HaProxy que se ejecuta en el puerto 8080 con nombre de usuario y contraseña definida en haproxi.CFG archivo.



http: // 192.168.1.108: 8080/estadísticas
Accede a la URL de estadísticas haproxy. Panel de estadísticas de Haproxy.

Haproxy funciona con éxito y actúa como un equilibrador de carga para los dos servidores web Nginx.

Conclusión

HaProxy o proxy de alta disponibilidad es un software de código abierto que proporciona una alta disponibilidad para los servicios basados ​​en TCP, opera como equilibrador de carga HTTP y servidor proxy. El software está escrito en C y admite SSL, Keep-Alive y Compression. HaProxy es la opción correcta para todos los que necesitan un equilibrador de carga y un servidor proxy que sea rápido y liviano con una pequeña huella de memoria y un bajo uso de CPU. Haproxy puede ejecutarse en el modo TCP de capa 4 y el modo HTTP de capa 7. Nginx admite solo el modo HTTP de capa 7 con HaProxy. Si desea usar el modo TCP de capa 4, puede usar otros servidores web como Apache. En Rhel 8 / Centos 8 Linux, HaProxy está disponible en el repositorio predeterminado. Es fácil de instalar y configurar.

Tutoriales de Linux relacionados:

  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas para instalar en Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Comparación de Linux Apache Prefork vs Worker MPMS
  • Ubuntu 20.04 WordPress con instalación de Apache
  • Ubuntu 20.04: WordPress con instalación de Nginx
  • Descarga de Linux
  • Crear redireccionamiento y reescribir reglas en .Htaccess en Apache ..
  • ¿Con qué frecuencia tiene que reiniciar su servidor de Linux??