Cómo configurar HAProxy como proxy inverso

Como Configurar Haproxy Como Proxy Inverso



Cuando tienes un servidor web, tener una forma de reenviar las solicitudes de los clientes y la respuesta del servidor ayuda a distribuir el tráfico y mejora la seguridad. Un proxy inverso, como HAProxy, actúa como intermediario entre su aplicación web y los dispositivos cliente cuando se configura. De esa manera, recibe las solicitudes del cliente y las reenvía al servidor web apropiado mientras recibe la respuesta del servidor y las transmite a los clientes. Configurar HAProxy en su servidor para que actúe como su proxy inverso es un proceso sencillo. Esta publicación ha detallado los pasos que debe seguir.

¿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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.cfg

Una 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.