¿Por qué utilizar un proxy inverso?
Antes de analizar los pasos para configurar HAProxy como proxy inverso, resaltemos rápidamente por qué un proxy inverso es una ventaja para usted. Los siguientes son los beneficios que obtiene al utilizar HAProxy como proxy inverso:
- Balanceo de carga - Su servidor web puede, en un momento dado, tener muchas solicitudes de clientes que, si no se manejan bien, pueden sobrecargarlo, lo que provoca un tiempo de inactividad inesperado. Sin embargo, la configuración de un proxy inverso garantiza que el tráfico se distribuya entre los servidores backend para garantizar que ningún servidor se sobrecargue con solicitudes.
- Cortafuegos y seguridad – El proxy inverso conecta los dispositivos cliente al servidor web. Hacerlo reduce el riesgo de exponer directamente nuestros servidores backend a Internet. De esa manera, el tráfico malicioso se puede filtrar y bloquear fácilmente antes de que dañe los servidores.
- Mejor almacenamiento en caché – Con un proxy inverso, notará una mejora general en el rendimiento, ya que el tiempo de carga se reducirá al almacenar en caché el contenido estático. Además, lograrás una mejor experiencia de usuario.
- Terminación SSL/TLS – Con un proxy inverso, cifrar y descifrar las conexiones SSL/TLS se vuelve fluido y sus servidores backend no tendrán que asumir esta tarea, lo que reduce su carga.
Cómo configurar HAProxy como proxy inverso
Habiendo explicado por qué es esencial un proxy inverso como HAProxy, vamos a dar los pasos de configuración a seguir.
Paso 1: Instale HAProxy
Probablemente ya tengas HAProxy instalado en tu sistema. Si es así, omita este paso. Sin embargo, para alguien nuevo en esto, ejecute el siguiente comando para instalar HAProxy:
$ sudo apto instalar haproxy
En nuestro caso ya lo tenemos instalado.
Paso 2: edite el archivo de configuración de HAProxy
HAProxy tiene un archivo de configuración al que debe acceder y editar para configurarlo como su proxy inverso. Comience abriendo el archivo de configuración usando un editor de texto.
$ sudo nano /etc/haproxy/haproxy.cfgUna vez que se abre, tenga en cuenta que tiene configuraciones básicas para las secciones predeterminada y global. Luego debemos crear dos secciones más: frontend y backend. El frontend define las interfaces que deben recibir las solicitudes de los clientes, mientras que el backend especifica los servidores que manejarán el tráfico.
Para este ejemplo, configuramos la interfaz para aceptar las solicitudes de los clientes desde los puertos 80 y 81. Luego creamos una regla para distribuir el tráfico de modo que las conexiones del puerto 80 se enruten a un servidor específico mientras que las del puerto 81 van a otro diferente. servidor. Nuestra sección de interfaz es como se muestra a continuación:
Dado que creamos dos servidores backend, backend2 y linux_backend, debemos crear las secciones backend para ambos servidores. Especificamos qué IP distribuir el tráfico a nuestro “servidor1” y “servidor2” para cada uno.
Una vez editado el archivo de configuración, guárdelo y salga del archivo. Tenga en cuenta que existen numerosas formas de configurar HAProxy según sus necesidades. Para nuestro caso, creamos los servidores web utilizando la dirección IP especificada para enrutar nuestro tráfico. Cambie las IP para que coincidan con las de sus servidores web y el puerto en el que desea escuchar.
Paso 3: verificar la validez
Con HAProxy, hay un comando que le permite verificar si su archivo de configuración es válido. Ejecute el siguiente comando y vea qué resultado obtiene:
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Si obtiene un resultado similar, confirma que su archivo de configuración es válido. De lo contrario, generará errores.
Paso 4: Pruebe el proxy inverso
Usando un comando como 'curl', puedes enviar tráfico a tu servidor web y ver cómo responde. Para nuestro caso, usamos Python3 para crear los servidores web.
La ejecución del comando 'curl' confirma que nuestro servidor web está escuchando el puerto especificado y que HAProxy ha distribuido el tráfico al servidor especificado según nuestro archivo de configuración.
También puede acceder a su servidor web en un navegador y confirmar que el proxy inverso funciona.
Dado que tenemos dos servidores web que se pueden usar según el puerto que utilizan los dispositivos cliente, vinculemos un servidor web diferente a un puerto diferente y veamos qué sucede.
El siguiente resultado muestra que HAProxy envió nuestro tráfico al segundo servidor backend después de detectar que la solicitud del cliente se envió a través del puerto 81, lo que confirma que la distribución del tráfico está funcionando como se esperaba.
Así es como se configura HAProxy como proxy inverso.
Conclusión
HAProxy es una excelente opción como proxy inverso para su servidor web. Configurarlo es sencillo. Especifique únicamente qué puerto escuchará las solicitudes de los clientes y qué reglas utilizar para el equilibrio de carga. Luego, agregue los servidores backend para usar y tendrá su proxy inverso en funcionamiento. Esta publicación compartió los pasos a seguir y demostró un ejemplo para garantizar que se sienta cómodo con HAProxy.