Tenemos configurar tres máquinas. Instalaremos HaProxy en un servidor y los servidores web Apache en dos servidores. Nuestro servidor HaProxy actuará como un equilibrador de carga y distribuirá la carga entre los servidores web Apache.
Nota: El procedimiento y los comandos mencionados en esta publicación se han probado en Ubuntu 20.04 LTS (fosa focal). El mismo procedimiento también es válido para las distribuciones de 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: web-server1, dirección IP: 192.168.72.158 (servidores de backend)
Nombre de host: web-server2, dirección IP: 192.168.72.159 (servidores de backend)
Nota: Debes tener privilegios de sudo en todos los servidores.
Configuraremos una máquina como equilibrador de carga y los otros dos como servidores web. El servidor HaProxy será nuestro servidor front-end que recibirá las solicitudes de los usuarios y las reenviará a los dos servidores web. Los servidores web serán nuestros servidores de backend que recibirán esas solicitudes reenviadas.
Así es como se ve nuestra configuración:
Configuración de servidores de servidores web-backend
En esta sección, configuraremos dos servidores web (servidor web y Web-server2) como nuestros servidores de backend.
En Web-server1 (192.168.72.158)
Realice los pasos a continuación en su servidor web. Asegúrese de reemplazar los nombres de host y las direcciones IP con las direcciones IP relevantes y los nombres de host de sus servidores web.
En servidor web, editar el /etc/huéspedes archivo:
$ sudo nano /etc /anfitriones
Luego agregue la entrada del nombre de host para Haproxi servidor de la siguiente manera:
Nombre de host-haproxi IP-Address-of-Haproxy
En nuestro escenario, sería:
Haproxy 192.168.72.157
Configurar el servidor web de Apache
Ahora instale el servidor web Apache usando el siguiente comando en terminal. También puedes visitar nuestra publicación en Cómo instalar el servidor web Apache en Linux.
$ sudo apt install apache2
Luego habilite e inicie el servicio Apache utilizando los comandos a continuación en la terminal:
$ sudo systemctl habilita apache2
$ sudo systemctl iniciar apache2
Crear un archivo de índice para servidor web Usando el siguiente comando en la terminal:
$ Echo "Hola! Este es WebServer1: 192.168.72.158
"| sudo tee/var/www/html/index.html
Si un firewall se está ejecutando en su sistema, deberá permitir el tráfico de Apache a través de él:
$ sudo UFW Permitir 80/TCP
Luego vuelva a cargar las configuraciones de firewall:
$ UFW recarga
Ahora intente acceder al sitio en su navegador web escribiendo http: // seguido de la dirección IP o el nombre de host de su servidor web.
http: // hostname-or-ip-address
Alternativamente, también puede usar el comando curl para probar la página web.
$ curl
En el servidor web-2 192.168.72.159)
Realice los pasos a continuación en su segundo servidor web. Asegúrese de reemplazar los nombres de host y las direcciones IP con las direcciones IP relevantes y los nombres de host de sus servidores web.
En Web-server2, editar el /etc/huéspedes archivo:
$ sudo nano /etc /anfitriones
Luego agregue la entrada del nombre de host para Haproxi servidor de la siguiente manera:
Haproxy 192.168.72.157
Ahora instale el servidor web Apache usando el siguiente comando en terminal.
$ sudo apt install apache2
Luego habilite e inicie el servicio Apache utilizando los comandos a continuación en la terminal:
$ sudo systemctl habilita apache2
$ sudo systemctl iniciar apache2
Cree un archivo de índice para Web-server2 usando el siguiente comando en terminal:
$ Echo "Hola! Este es WebServer2: 192.168.72.159
"| sudo tee/var/www/html/index.html
Permitir Apache en el firewall:
$ sudo UFW Permitir 80/TCP
y luego recargar configuraciones de firewall:
$ UFW recarga
Ahora intente acceder al sitio en su navegador web escribiendo http: // seguido de la dirección IP o el nombre de host.
http: // hostname-or-ip-address
Alternativamente, puede usar el comando curl para probar la página web.
$ curl
Ahora nuestros servidores web Apache están listos.
Configuración del servidor Balancer-Frontend de Balancer de carga de HaProxy
En esta sección, estableceremos un equilibrador de carga de HaProxy para nuestro servidores web. Este servidor HaProxy actuará como un servidor frontend y acepta solicitudes entrantes de los clientes.
Sobre el Haproxi servidor (192.168.72.157), realice los pasos a continuación para configurar el equilibrador de carga.
Configurar el archivo hosts
Editar el /etc/huéspedes Archivo utilizando el siguiente comando en terminal:
$ sudo nano /etc /anfitriones
Agregue las siguientes entradas del nombre de host para ambas apache servidores web junto con su propio nombre de host:
192.168.72.157 haproxy
192.168.72.158 Web-server1
192.168.72.159 Web-server2
Ahora guarde y cierre el /etc/huéspedes archivo.
Instalación del equilibrador de carga de Haproxy
Ahora en este paso, instalaremos el Haproxy en uno de nuestro servidor Ubuntu (192.168.72.157). Para hacerlo, actualice APT usando el siguiente comando en Terminal:
$ sudo apt-get actualización
Luego actualice los paquetes utilizando el siguiente comando:
$ sudo apt-get actualización
Ahora instale HaProxy usando el siguiente comando en la terminal:
$ sudo sudo apt install haproxy
Una vez que finalice la instalación del servidor HaProxy, puede confirmarlo utilizando el siguiente comando en terminal:
$ haproxy -v
Le mostrará la versión instalada de HaProxy en su sistema, lo que verifica que el haproxy se haya instalado correctamente.
Configuración de HaProxy como equilibrador de carga
En la siguiente sección, configuraremos HaProxy como un equilibrador de carga. Para hacerlo, editar el/etc/haproxy/haproxy.CFG archivo:
$ sudo nano /etc/haproxy/haproxy.CFG
Agregue las siguientes líneas en el haproxy.Archivo CFG reemplazando las direcciones IP con sus propias direcciones IP.
El Frontend Web-Frontend En las líneas de configuración anteriores le dicen a HaProxy que escuche las solicitudes entrantes en el puerto 80 de 192.168.72.157 y luego reenvíelos a servidores de back -end configurados bajo el backend devolución de web. Al configurar, reemplace las direcciones IP con las direcciones IP relevantes de sus servidores web.
Configuración de 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 en el archivo de configuración ubicado en /etc/haproxy/haproxy.CFG:
ESTADAS DE ESCUCHA
Atar 192.168.72.157: 8080
modo http
Opción hacia adelante para
opción httpclose
Estadística habilitar
Las estadísticas muestran las leyes
Las estadísticas refrescan 5s
estadísticas uri /estadísticas
estadísticas reino haproxy \ estadísticas
Estadísticas Auth Kbuzdar: Kbuzdar #login usuario y contraseña para el monitoreo
estadísticas admin si es cierto
default_backend web-backend
La configuración anterior habilita el haproxy "estadísticas"Página usando el estadísticas directiva y lo asegura con http autenticación básica utilizando el nombre de usuario y la contraseña definidos por el Auth Stats directiva.
Una vez que haya terminado con las configuraciones, guarde y cierre el haproxi.archivo cfg.
Ahora verifique el archivo de configuración utilizando el siguiente comando en terminal:
$ haproxy -c -f/etc/haproxy/haproxy.CFG
La siguiente salida muestra que las configuraciones son correctas.
Ahora para aplicar las configuraciones, reinicie el servicio HaProxy:
$ sudo systemctl reiniciar haproxy.servicio
Se detendrá y luego comenzará el servicio haproxy.
Para verificar el estado del servicio haproxy, el comando sería:
$ sudo systemctl status haproxy.servicio
El Activo (en ejecución) El estado en la siguiente salida muestra que el servidor HaProxy está habilitado y se ejecuta bien.
Aquí hay algunos otros comandos para administrar el servidor HaProxy:
Para iniciar el servidor haproxy, el comando sería:
$ sudo systemctl inicio haproxy.servicio
Para detener el servidor haproxy, el comando sería:
$ sudo systemctl stop haproxy.servicio
En caso de que desee deshabilitar temporalmente el servidor HaProxy, el comando sería:
$ sudo systemctl deshabilitar haproxy.servicio
Para volver a habilitar el servidor haproxy, el comando sería:
$ sudo systemctl habilita haproxy.servicio
Prueba haproxy
Antes de probar la configuración de HaProxy, asegúrese de tener conectividad a los servidores web. Desde su servidor HaProxy, ping ambos servidores web por sus direcciones IP o nombres de host.
$ ping hostname-or-ip-address
La siguiente salida muestra que el servidor HaProxy puede comunicarse con ambos servidores web.
Pruebe el proxy HA con un navegador web
Ahora en su servidor haproxy, abra cualquier navegador web y escriba http: // seguido de la dirección IP del servidor Haproxy que en nuestro caso es 192.168.72.157.
http: // 192.168.72.157
El servidor HaProxy enviará alternativamente la solicitud a ambos servidores web en un método de redondeo. Puede probar esto recargando la página web varias veces.
Esta es la respuesta que recibimos cuando visitamos el http: // 192.168.72.157 por primera vez:
Esta es la respuesta que recibimos cuando volvimos a cargar la página web:
También puede usar el nombre de host en lugar de la dirección IP del servidor HaProxy.
Prueba de proxy HA con curl
También puede usar el comando curl en Linux para probar la configuración de HaProxy. Abra la terminal y el tipo rizo seguido de la dirección IP o el nombre de host del servidor HaProxy.
$ curl 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 cierto; hacer curl 192.168.72.157; dormir 1; hecho
Prueba de monitoreo de HaProxy
Para acceder a la página de monitoreo de HaProxy, escriba http: // seguido de la dirección IP/nombre de host del servidor haproxy y el puerto 8080/estadísticas:
http: // 192.168.72.157: 8080/estadísticas
o
http: // haproxy: 8080/estadísticas
Aparecerá el siguiente cuadro de autenticación. Ingresar el nombre de usuario y contraseña Has configurado anteriormente en las configuraciones y luego presiona DE ACUERDO.
Este es el informe de estadísticas para nuestro servidor HaProxy.
Allí tiene la instalación y la configuración del equilibrador de carga HaProxy en el sistema Linux. Acabamos de discutir la configuración y configuración básicas de HaProxy como un equilibrador de carga para los servidores web Apache. También observamos algunos comandos para administrar el servidor haproxy. Al final, probamos la carga equilibrada a través del navegador y el comando curl. Para obtener más información, visite la documentación oficial de HaProxy