Cómo instalar HAProxy en CentOS 8

En este tutorial, le mostraremos cómo instalar HAProxy en su CentOS 8. Para aquellos de ustedes que no lo sabían, HAProxy es un servidor proxy y equilibrador de carga de alta disponibilidad HTTP/TCP gratuito. Distribuye las solicitudes entre múltiples servidores para mitigar los problemas que resultan de la falla de un solo servidor. HA Proxy es utilizado por varios sitios web de alto perfil, incluidos GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twittery Tuenti, y se utiliza en el producto OpsWorks de Amazon Web Services.

Este artículo asume que tiene al menos un conocimiento básico de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y se supone que está ejecutando en la cuenta raíz, si no, es posible que deba agregar ‘ sudo ‘ a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso de HAProxy en CentOS 8.

requisitos previos

  • Un servidor que ejecuta uno de los siguientes sistemas operativos: CentOS 8.
  • Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
  • Acceso SSH al servidor (o simplemente abra la Terminal si está en una computadora de escritorio).
  • UN non-root sudo user o acceder a la root user . Recomendamos actuar como un non-root sudo user sin embargo, puede dañar su sistema si no tiene cuidado al actuar como raíz.

Instalar HAProxy en CentOS 8

Paso 1. Primero, comencemos asegurándonos de que su sistema esté actualizado.

                      sudo clean all
sudo dnf update
                    

Paso 2. Instalación de HAProxy en CentOS 8.

HAProxy está disponible en el CentOS 8 predeterminado, ahora use lo siguiente dnf un comando para instalar HAProxy:

                      sudo dnf install haproxy
                    

Paso 3. Configuración de HAProxy.

Vamos a crear un archivo de configuración. /etc/haproxy/haproxy.cfg que contiene los ajustes y configuraciones necesarios:

                      sudo nano /etc/haproxy/haproxy.cfg
                    

Enter lo siguiente en el archivo:

                      global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats
    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 main
    bind *:5000
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js
    use_backend static          if url_static
    default_backend             app
backend static
    balance     roundrobin
    server      static 127.0.0.1:4331 check
backend app
    balance     roundrobin
    server  app1 127.0.0.1:5001 check
    server  app2 127.0.0.1:5002 check
    server  app3 127.0.0.1:5003 check
    server  app4 127.0.0.1:5004 check
                    

Puede ver los detalles de configuración y más información marque esto URL . Una vez que haya configurado HAProxy, es hora de iniciar el servicio:

                      sudo systemctl start haproxy
sudo systemctl enable haproxy
                    

Paso 4. Configure el cortafuegos.

Agregaremos el HAProxy al firewall de CentOS 8 y actualizaremos las reglas con los siguientes comandos:

                      sudo firewall-cmd --add-port=8088/tcp --permanent
sudo firewall-cmd --reload
                    

Paso 5. Configure el registro de HAProxy.

Para configurar la edición de registro estándar de HAProxy /etc/rsyslog.conf y habilite la recepción UDP Syslog en el puerto 514:

                      sudo nano /etc/rsyslog.conf
                    
                      ...
# Provides UDP syslog reception
# for parameters see https://www.rsyslog.com/doc/imudp.html
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
...
*.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages
local2.* /var/log/haproxy.log
...
                    

Luego, guarde el archivo de configuración y ejecute el siguiente comando para verificar si hay errores:

                      rsyslogd -N1
sudo systemctl restart rsyslog haproxy
                    

Paso 6. Configurar Apache X-Forwarded-Para iniciar sesión en servidores back-end.

Ahora iniciamos sesión en los servidores backend y configuramos Apache para registrar encabezados X-Forwarded-For. La línea predeterminada que estamos cambiando es:

                      ...
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
...
                    

Edite esta línea de modo que se vea así:

                      ...
LogFormat ""%{X-Forwarded-For}i" %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
...
                    

Guarde el archivo y reinicie Apache:

                      apachectl configtest
sudo systemctl restart httpd
                    

Paso 7. Prueba del balanceador de carga HAProxy.

Para verificar que HAProxy puede equilibrar la carga de las solicitudes HTTP, navegue hasta el navegador y acceda a HAProxy utilizando el nombre de host o la dirección IP.

¡Felicidades! Has instalado correctamente HAProxy. Gracias por usar este tutorial para instalar HAProxy en sus sistemas CentOS 8. Para obtener ayuda adicional o información útil, le recomendamos que consulte el sitio web oficial de HAProxy .

Related Posts