GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar HAProxy en CentOS 8

HAProxy significa Proxy de alta disponibilidad. Escrito en C, es un equilibrador de carga TCP/HTTP gratuito y de código abierto y una solución de proxy para aplicaciones basadas en TCP y HTTP. HAProxy se utiliza para mejorar el rendimiento de un entorno de servidor mediante la distribución de la carga de trabajo entre varios servidores.

HAProxy permite que una aplicación se reinicie automáticamente o redirija el trabajo a otro servidor en caso de falla. Este balanceador de carga potente, de alto rendimiento, confiable y seguro es el más utilizado y fue diseñado especialmente para sitios web de muy alto tráfico.

En este tutorial, le mostraremos cómo configurar un balanceador de carga de alta disponibilidad con HAProxy en CentOS 8.

Requisitos

  • Tres CentOS 8 VPS nuevos en la plataforma en la nube Atlantic.Net
  • Una contraseña raíz configurada en cada VPS

Para este tutorial, utilizaremos la siguiente configuración:

Servidor HAProxy: – nombre de host:haproxy IP:192.168.0.10

Servidor web 1:- nombre de host:web1 IP:192.168.0.11

Servidor web 2:- nombre de host:web2 IP:192.168.0.12

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:instalar y configurar Nginx

Nota:Complete este paso en WebServer 1 y WebServer2

Primero, deberá instalar el servidor web Nginx en las instancias web1 y web2.

Puede instalar Nginx ejecutando el siguiente comando:

dnf install nginx -y

Una vez que se haya instalado Nginx, inicie el servicio Nginx y habilítelo para que se inicie en el arranque en ambas instancias:

systemctl start nginx
systemctl enable nginx

A continuación, modifique el index.html archivo en cada instancia.

Modificar index.html archivo en web1 instancia con el siguiente comando:

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

Modificar index.html archivo en web2 instancia con el siguiente comando:

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

Guarde y cierre el archivo cuando haya terminado.

Paso 3:instalar y configurar HAProxy

Nota:complete este paso en el servidor HAProxy

Primero, instale HAProxy en la instancia del servidor haproxy con el siguiente comando:

dnf install haproxy -y

Una vez completada la instalación, haga una copia de seguridad del archivo de configuración predeterminado de haproxy:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

El archivo de configuración se divide en cuatro secciones principales.

  1. configuración global: Se utiliza para establecer parámetros de todo el proceso.
  2. valores predeterminados: Se utiliza para establecer parámetros predeterminados para todas las demás secciones.
  3. interfaz: Se utiliza para definir cómo se accede externamente a HAProxy para habilitar el acceso al backend.
  4. backend: Se utiliza para definir un conjunto de servidores a los que se conectará el proxy para reenviar las conexiones entrantes.

A continuación, cree un nuevo archivo de configuración de haproxy con el siguiente comando:

nano /etc/haproxy/haproxy.cfg

Agregue las siguientes líneas que coincidan con su infraestructura:

#————————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

# activar estadísticas socket unix

stats socket /var/lib/haproxy/stats

# utilizar políticas criptográficas en todo el sistema

ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM

#————————————————————————

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

#————————————————————————

# frontend principal que actúa como proxy a los backends

#————————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#————————————————————————

# Equilibrio por turnos entre los distintos backends

#————————————————————————

servidores web backend # Especifique un nombre para identificar una aplicación

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

Nota:asegúrese de modificar la dirección IP anterior con la IP relevante para la configuración de su servidor

Guarde y cierre el archivo cuando haya terminado. Luego, verifique el archivo de configuración de haproxy en busca de errores con el siguiente comando:

haproxy -c -f /etc/haproxy/haproxy.cfg

Deberías obtener el siguiente resultado:

Configuration file is valid

Finalmente, inicie el servicio haproxy y habilítelo para que se inicie en el arranque con el siguiente comando:

systemctl start haproxy
systemctl enable haproxy

También puede verificar haproxy con el siguiente comando:

systemctl status haproxy

Deberías obtener el siguiente resultado:

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

Paso 4:configurar el registro HAProxy

El registro de HAProxy le permite ver estadísticas de cada conexión a sus servidores web backend.

Puede configurar rsyslog editando el archivo /etc/rsyslog.conf:

nano /etc/rsyslog.conf

Descomente la siguiente línea:

module(load="imudp")
input(type="imudp" port="514")

Guarde y cierre el archivo cuando haya terminado. A continuación, deberá configurar un servidor rsyslog para recibir y procesar los mensajes de registro de HAProxy.

Para ello, cree un nuevo archivo de configuración haproxy.conf:

nano /etc/rsyslog.d/haproxy.conf

Agregue las siguientes líneas:

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio rsyslog y habilítelo para que comience en el arranque con el siguiente comando:

systemctl restart rsyslog
systemctl enable rsyslog

Paso 5:Probar el equilibrio de carga de HAProxy

En este punto, HAProxy está instalado y configurado. Es hora de probar si el equilibrio de carga funciona o no.

Abra su navegador web y escriba su IP HAProxy http://192.168.0.10. Debería ver el contenido de su primer servidor web Nginx en la siguiente pantalla:

A continuación, actualice la página web. Debería ver el contenido de su segundo servidor web Nginx en la siguiente pantalla:

Puede ver el estado de haproxy usando la URL http://192.168.0.10/haproxy?stats. Debería ver el estado de sus servidores, las tasas de solicitudes actuales, los tiempos de respuesta y otras métricas en la siguiente pantalla:

Conclusión

En la guía anterior, aprendimos cómo configurar un balanceador de carga de alta disponibilidad con HAProxy en CentOS 8. Ahora puede diseñar y configurar fácilmente el balanceo de carga para adaptarse a su infraestructura de TI y los requisitos de la aplicación; pruébelo en VPS Hosting de Atlantic.Net.


Linux
  1. Cómo configurar un servidor SFTP en CentOS

  2. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  3. Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

  4. Cómo configurar la replicación de MySQL en CentOS

  5. ¿Cómo configurar el servidor NTP en CentOS?

Cómo configurar el servidor SysLog centralizado en CentOS 8 / RHEL 8

Cómo instalar HAProxy en CentOS 7

Cómo instalar HAProxy en CentOS 8

Cómo configurar HAProxy como Load Balancer para Nginx en CentOS 8

Cómo configurar HAProxy como Load Balancer para Nginx en CentOS 7

Cómo inicializar la configuración del servidor CentOS 7