GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar y configurar HAproxy en Ubuntu 20.04 LTS

HAproxy es un paquete ligero de código abierto que proporciona alta disponibilidad y equilibrio de carga para programas basados ​​en TCP y HTTP. Equilibra la carga entre la web y los servidores de aplicaciones. HAproxy está disponible para casi todas las distribuciones de Linux. Es un balanceador de carga ampliamente utilizado popular por su eficiencia, confiabilidad y pequeña memoria y CPU. En esta publicación explicamos cómo instalar y configurar HAproxy en un sistema Ubuntu.

Instalamos tres máquinas. Instalaremos HAproxy en un servidor y los servidores web Apache en dos servidores. Nuestro servidor HAproxy luego actúa como un equilibrador de carga y distribuye la carga entre los servidores web Apache.

Nota: El procedimiento y los comandos mencionados en esta publicación han sido probados en Ubuntu 20.04 LTS (Focal Fossa). El mismo procedimiento también se aplica a las distribuciones Debian y Mint.

Detalles de la red

Usaremos tres servidores Ubuntu; todo en la misma red. Los detalles de nuestros servidores son los siguientes:

Nombre de host:HAproxy, dirección IP:192.168.72.157 (servidor frontend)
Nombre de host:Webserver1, dirección IP:192.168.72.158 (servidor backend)
Nombre de host:Webserver2, dirección IP:192.168.72.159 (servidor backend)

Nota: Debe tener privilegios sudo en todos los servidores.

Configuraremos una computadora como balanceador de carga y las otras dos como servidores web. El servidor HAproxy será nuestro servidor front-end, tomará las solicitudes de los usuarios y las reenviará a los dos servidores web. Los servidores web son nuestros servidores backend que reciben estas solicitudes reenviadas.

Nuestra configuración se ve así:

Configurar servidores web servidores backend

En esta sección configuraremos dos servidores web (Webserver1 y servidor web2 ) como nuestros servidores backend.

En el servidor web 1 (192.168.72.158)

Complete los siguientes pasos en su servidor web. Asegúrese de reemplazar los nombres de host y las direcciones IP con las direcciones IP y los nombres de host correspondientes de sus servidores web.

1. Configurar archivo de hosts

En Servidor web1, Edite el /etc/hosts Archivo:

$sudo nano /etc/hosts

Luego agregue la entrada de nombre de host para . añadir proxy HA Servidores de la siguiente manera:

host-name-of-HAproxy IP-address-of-HAproxy

En nuestro escenario, sería:

HAproxy 192.168.72.157

2. Configurar el servidor web Apache

Ahora instale el servidor web Apache usando el siguiente comando en la terminal. Visite también nuestra publicación sobre Cómo instalar el servidor web Apache en Linux.

$ sudo adecuado Instalar Apache2

Luego habilite e inicie el servicio Apache usando los siguientes comandos en la terminal:

$ sudo systemctl activar apache2
$ sudo systemctl iniciar apache2

Cree un archivo de índice para Webserver1 Use el siguiente comando en la terminal:

$eco”

¡Hola! Este es el servidor web1:192.168.72.158

“ | sudo camiseta /wo/www/html/index.html

Si tiene un firewall ejecutándose en su sistema, debe permitir el tráfico de Apache a través de él:

$ sudo ufw permite 80/tcp

A continuación, vuelva a cargar las configuraciones del cortafuegos:

recargar $ufw

Ahora intente acceder al sitio en su navegador web escribiendo https:// seguido de la dirección IP o el nombre de host de su servidor web.

https:// nombre de host o dirección IP

Alternativamente, puede usar el comando curl para probar la página web.

$lock

En el servidor web-2 192.168.72.159)

Complete los siguientes pasos en su segundo servidor web. Asegúrese de reemplazar los nombres de host y las direcciones IP con las direcciones IP y los nombres de host correspondientes de sus servidores web.

1. Configurar archivo de hosts

En servidor web2 , edite el /etc/hosts Archivo:

$sudo nano /etc/hosts

Luego agregue la entrada de nombre de host para . añadir proxy HA Servidores de la siguiente manera:

HAproxy 192.168.72.157

2. Instalar el servidor web Apache

Ahora instale el servidor web Apache usando el siguiente comando en la terminal.

$ sudo adecuado Instalar Apache2

Luego habilite e inicie el servicio Apache usando los siguientes comandos en la terminal:

$ sudo systemctl activar apache2
$ sudo systemctl iniciar apache2

Cree un archivo de índice para Webserver2 usando el siguiente comando en Terminal:

$eco”

¡Hola! Este es el servidor web2:192.168.72.159

“ | sudo camiseta /wo/www/html/index.html

Permitir Apache en el cortafuegos:

$ sudo ufw permite 80/tcp

y luego recargar las configuraciones del firewall:

recargar $ufw

Ahora intente acceder al sitio en su navegador web escribiendo https:// seguido de la dirección IP o el nombre de host.

https:// nombre de host o dirección IP

Alternativamente, puede usar el comando curl para probar la página web.

$lock

Ahora nuestros servidores web Apache están listos.

Configurar el servidor front-end del equilibrador de carga HAproxy

En esta sección, configuramos un balanceador de carga HAproxy para nuestros servidores web . Este servidor HAproxy actúa como un servidor front-end y acepta las solicitudes entrantes de los clientes.

En HAproxy Servidor (192.168.72.157 ), siga los pasos a continuación para configurar el balanceador de carga.

1. Configurar archivo de hosts

Edite el /etc/hosts archivo con el siguiente comando en la terminal:

$sudo nano /etc/hosts

Agregue las siguientes entradas de nombre de host para ambos Apache Servidor web junto con su propio nombre de host:

192.168.72.157 HAproxy
192.168.72.158 servidor web1
192.168.72.159 servidor web2

Ahora guarde y cierre /etc/hosts archivo.

Instalar balanceador de carga HAproxy

En este paso, ahora instalaremos HAproxy en uno de nuestros servidores Ubuntu (192.168.72.157). Para hacer esto, actualice apt con el siguiente comando en la terminal:

$ sudo apt-obtener actualización

Luego actualice los paquetes con el siguiente comando:

$ sudo apt-obtener actualización

Ahora instale HAproxy con el siguiente comando en la terminal:

$ sudo sudo adecuado instalar feliz

Una vez que se complete la instalación del servidor HAproxy, puede confirmarlo con el siguiente comando en la terminal:

$ feliz -v

Le mostrará la versión instalada de HAproxy en su sistema, confirmando que HAproxy se instaló correctamente.

Configurar HAproxy como equilibrador de carga

En la siguiente sección, configuramos HAproxy como balanceador de carga. Para hacer esto,Edite el archivo /etc/haproxy/haproxy.cfg Archivo:

$ sudo nano >etc/feliz/haproxy.cfg

Agregue las siguientes líneas al archivo haproxy.cfg, reemplazando las direcciones IP con sus propias direcciones IP.

?El Frontend Web Frontend en las líneas de configuración anteriores, se le indica a HAproxy que escuche las solicitudes entrantes en el puerto 80 de 192.168.72.157 y luego reenviarlos a los servidores back-end que se ejecutan bajo el . están configurados backend Backend web . Durante la configuración, reemplace las direcciones IP con las direcciones IP correspondientes de sus servidores web.

Configurar el monitoreo de HAproxy

Con el monitoreo de HAproxy, puede ver mucha información, incluido el estado del servidor, los datos transferidos, el tiempo de actividad, la tasa de sesión, etc. Para configurar el monitoreo de HAproxy, agregue las siguientes líneas al archivo de configuración en /etc/haproxy/haproxy.cfg :

escuche las estadísticas
vincule 192.168.72.157:8080
modo http
opción reenviar
opción httpclose
habilite estadísticas
estadísticas muestre leyendas
actualización de estadísticas 5s
stats /stats
stats realm haproxy stats
stats auth kbuzdar:kbuzdar #login usuario y contraseña para monitorear
stats admin if TRUE
default_backend web backend

La configuración anterior habilita el HAproxy "Estadísticas “ Página Estadísticas política y asegúrela con http Autenticación básica con nombre de usuario y contraseña obtenidos de Autenticación de estadísticas Política.

Cuando haya terminado con las configuraciones, guarde y cierre el archivo haproxy.cfg.

Ahora revisa el archivo de configuración usando el siguiente comando en la terminal:

$ feliz -C -F /etc/feliz/haproxy.cfg

El siguiente resultado muestra que las configuraciones son correctas.

Ahora, para aplicar las configuraciones, reinicie el servicio HAproxy:

$ sudo systemctl reiniciar haproxy.service

Se detiene y luego inicia el servicio HAproxy.

Para verificar el estado del servicio HAproxy, el comando es:

$ sudo systemctl-status haproxy.service

El activo (en curso) El estado en el siguiente resultado indica que el servidor HAproxy está habilitado y funcionando correctamente.

Aquí hay algunos otros comandos para administrar el servidor HAproxy:

Para iniciar el servidor HAproxy, el comando es:

$ sudo systemctl start haproxy.servicio

Para detener el servidor HAproxy, el comando es:

$ sudo systemctl detener haproxy.servicio

Si desea desactivar temporalmente el servidor HAproxy, el comando es:

$ sudo systemctl deshabilitar haproxy.service

Para volver a habilitar el servidor HAproxy, el comando es:

$ sudo systemctl habilitar haproxy.servicio

Probar proxy HA

Antes de probar la configuración de HAproxy, asegúrese de tener conectividad con los servidores web. Desde su servidor HAproxy, haga ping a ambos servidores web utilizando sus direcciones IP o nombres de host.

$ anillo de nombre de host o dirección IP

El siguiente resultado muestra que el servidor HAproxy puede llegar a ambos servidores web.

Pruebe el proxy HA con un navegador web

Ahora abra cualquier navegador web en su servidor HAproxy y escriba https:// seguido de la dirección IP del servidor HAproxy, que en nuestro caso es 192.168.72.157.

https://192.168.72.157

El servidor HAproxy envía alternativamente la solicitud a ambos servidores web en un procedimiento de turno rotativo. Puede probar esto recargando la página web varias veces.

Esta es la respuesta que recibimos cuando vimos por primera vez el https://192.168.72.157:

Esta es la respuesta que obtuvimos al recargar la página web:

También puede usar el nombre de host en lugar de la dirección IP del servidor HAproxy.

Pruebe el proxy HA con curl

También puede usar el comando curl en Linux para probar la configuración de HAproxy. Abra la terminal y escriba curl seguido de la dirección IP o el nombre de host del servidor HAproxy.

$ rizos 192.168.72.157

o

$ curl HAproxy

Ejecute el comando curl varias veces y verá la respuesta alternando entre ambos servidores web.

En lugar de ejecutar los comandos varias veces, también puede ejecutar el siguiente script de una línea para probar el servidor HAproxy:

$ mientras sea verdadero; hacer curl 192.168.72.157; dormir 1; hizo

Prueba de supervisión de HAproxy

Para acceder a la página de supervisión de HAproxy, escriba https:// seguido de la dirección IP/nombre de host del servidor HAproxy y el puerto 8080/stats:

https://192.168.72.157:8080/Estadísticas

o

https://HA-Proxy:8080/Estadísticas

Aparecerá el siguiente cuadro de autenticación. Introduzca el nombre de usuario y contraseña configurado previamente en las configuraciones, luego presione OK .

Este es el informe de estadísticas de nuestro servidor HAproxy.

Ahí tienes la instalación y configuración del HAproxy Load Balancer en el sistema Linux. Acabamos de discutir la instalación y configuración básicas de HAproxy como equilibrador de carga para servidores web Apache. También analizamos algunos comandos para administrar el servidor HAproxy. Al final, probamos el equilibrio de carga a través del navegador y el comando curl. Para obtener más información, consulte la documentación oficial de HAproxy


Debian
  1. Cómo cambiar la zona horaria en Debian 11 / Debian 10 / 9

  2. Instalación de la conexión de red Intel Corporation PRO/Wireless 2200BG en Linux Debian Etch

  3. Monitoreando su servidor instalando Matomo en Debian 11

  4. 7 comandos para comprobar el uso de la memoria y el espacio de intercambio en Debian 10

  5. Instalar y configurar Fail2ban en Debian 11

6 mejores prácticas de seguridad de Kubernetes:asegure sus cargas de trabajo

Cómo verificar su dirección IP en Ubuntu [Consejo para principiantes]

Cómo instalar Mattermost en Ubuntu 18.04

¿Cómo obtener la distribución correcta del teclado en español?

Cómo actualizar Ubuntu 16.04 LTS a 20.04 LTS usando la terminal de comandos

Cómo configurar la fecha y la hora en el escritorio y el servidor Rocky Linux 8