GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar HAProxy Load Balancer en Ubuntu 18.04 Bionic Beaver

En este artículo, habremos explicado los pasos necesarios para instalar y configurar HAProxy Load Balancer en Ubuntu 18.04 LTS. Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo. Todos los comandos de este tutorial deben ejecutarse como un usuario no root.

HAProxy es una herramienta Linux de código abierto que proporciona equilibrio de carga de alta disponibilidad y servicios de proxy para aplicaciones de red basadas en TCP y HTTP. Debido a su fácil integración en las arquitecturas existentes, la idoneidad para sitios web de alto tráfico, la confiabilidad extrema y el enfoque en la compatibilidad ascendente, se envía de forma predeterminada en la mayoría de las distribuciones principales de Linux.

Instalar HAProxy en Ubuntu

Paso 1. Detalles de la red

En aras de la simplicidad, asumiremos las siguientes direcciones IP y nombres de host para las instancias:

  • haproxy-server :dirección IP pública 198.18.0.1
  • backend-server1 :dirección IP privada 172.16.0.1 , dirección IP pública 198.18.0.1
  • backend-server2 :dirección IP privada 172.16.0.2 , dirección IP pública 198.18.0.2

Paso 2. Primero, antes de comenzar a instalar cualquier paquete en su servidor Ubuntu, siempre recomendamos asegurarse de que todos los paquetes del sistema estén actualizados.

sudo apt update
sudo apt upgrade

Paso 3. Instale HaProxy en Ubuntu 18.04 LTS.

HaProxy está disponible en el repositorio de software de Ubuntu, por lo que podemos instalarlo usando el administrador de paquetes ejecutando el siguiente comando:

sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy

Paso 4. Configuración del equilibrio de carga con HAProxy.

Ahora edite el archivo de configuración predeterminado de haproxy /etc/haproxy/haproxy.cfg e inicie la configuración:

sudo nano /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256::RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

Entonces, hacia el final del archivo, agregue el contenido a continuación:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

El parámetro bind le dice a HaProxy que escuche el puerto 80 en busca de conexiones. Al final del texto, hemos especificado ourwebsiteendpoint como la directiva donde se ubican nuestros puntos finales. Ahora podemos continuar y agregar los detalles de configuración de back-end de la siguiente manera:

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

Ahora, si lo desea, puede habilitar las estadísticas de Haproxy agregando la siguiente configuración en el archivo de configuración de HAProxy:

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Paso 5. Archivo de configuración final de HAProxy.

El archivo de configuración final puede tener el siguiente aspecto:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM$
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend ourwebsitefrontend
        bind *:80
        mode http
        default_backend ourwebsiteendpoint

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Luego, reinicie el servidor HaProxy para recargar los cambios:

sudo service haproxy restart

Paso 6. Prueba de la configuración.

En esta etapa, tenemos una configuración de HAProxy completamente funcional. En cada nodo de servidor web tengo una página de demostración index.html que muestra el nombre de host de los servidores, por lo que podemos diferenciar fácilmente las páginas web de los servidores.

Ahora acceda al puerto 80 en la IP 198.18.0.1 (como se configuró anteriormente) en el navegador web y presione actualizar. Verá que HAProxy está enviando solicitudes al servidor back-end una por una (según el algoritmo de turno rotativo).

Eso es todo lo que necesita hacer para instalar HAProxy Load en Ubuntu 18.04. Espero que encuentre útil este consejo rápido. Si tiene preguntas o sugerencias, no dude en dejar un comentario a continuación.


Ubuntu
  1. Cómo instalar Ubuntu 18.04 Bionic Beaver

  2. Cómo instalar y configurar el balanceador de carga HAProxy en Ubuntu 20.04

  3. Cómo instalar GlassFish en Ubuntu 18.04 Bionic Beaver

  4. Cómo instalar Netbeans en Ubuntu 18.04 Bionic Beaver

  5. Cómo instalar Slack en Ubuntu 18.04 Bionic Beaver

Cómo instalar Geany en Ubuntu 18.04 Bionic Beaver

Cómo instalar Skype en Ubuntu 18.04 Bionic Beaver

Cómo instalar GIMP en Ubuntu 18.04 Bionic Beaver

Cómo instalar PyCharm en Ubuntu 18.04 Bionic Beaver

Cómo instalar Ruby en Ubuntu 18.04 Bionic Beaver

Cómo instalar Percona en Ubuntu 18.04 Bionic Beaver