HAProxy es un ejemplo de equilibrador de carga gratuito y confiable que también funciona como proxy inverso. Puede configurar HAProxy para conexiones WebSocket para utilizar mejor las funciones de WebSockets, especialmente en la transferencia de datos en tiempo real, mientras minimiza la carga del servidor usando HAProxy. Esta publicación presenta todos los pasos necesarios para configurar HAProxy para conexiones WebSocket.
Guía paso a paso sobre cómo configurar HAProxy para conexiones WebSocket
Con las conexiones WebSocket, la comunicación entre el servidor y el cliente es duradera. Persiste hasta que el servidor o cliente decide cerrarlo. Como tal, tener una forma de trabajar con un equilibrador de carga garantiza que el tráfico se pueda distribuir a otro servidor si el servidor está sobrecargado. De esa manera, el cliente y el servidor pueden disfrutar de una conexión ininterrumpida y duradera con baja latencia.
1. Instale HAProxy
El primer paso para configurar HAProxy para conexiones WebSocket es asegurarse de tener HAProxy instalado. Si ya lo tienes instalado, omite este paso. De lo contrario, ejecute el siguiente comando para instalarlo:
$ sudo apt-obtener instalación haproxy
2. Edite la configuración de HAProxy
Para configurar HAProxy para conexiones WebSocket, debemos editar la configuración de HAProxy para admitir las conexiones WebSocket. Debemos modificar el apartado “Defaults” y crear los apartados “Frontend” y “Backend”.
Abra la configuración de HAProxy usando un editor de texto de la siguiente manera:
$ sudo nano / etc. / haproxy / haproxy.cfgEn la sección “Valores predeterminados”, modifíquelo como se presenta en la siguiente imagen. Primero, especificamos que estamos trabajando con conexiones HTTP y definimos dónde enviar los archivos de registro. A continuación, configuramos los tiempos de espera para diferentes actividades. Por ejemplo, el tiempo de espera de conexión es el tiempo máximo que debe tardar un intento de conexión al servidor. Si se alcanza el tiempo máximo, se concluye que la conexión ha fallado y se puede volver a intentar.
Para este caso, configuramos el tiempo de espera de conexión en 5000 milisegundos. Puede ajustar el tiempo de espera como mejor le parezca para su caso. Ajústelos según su aplicación y recuerde la duración de las sesiones de WebSocket y su duración esperada.
A continuación, debemos crear la sección “Frontend” donde vinculamos qué puertos usar para las conexiones WebSocket y a qué servidor backend hacer referencia. Para este caso, especificamos el puerto 80 y le damos la URL para acceder a la página 'Estadísticas' para monitorear nuestro HAProxy. Por último, definimos a qué sección de backend hacer referencia en el equilibrio de carga.
En la sección “Backend” distribuimos la carga mediante round robin. La 'opción reenviar para' especifica a HAProxy que incluya un encabezado 'X-Forward-For' que contiene la dirección IP del cliente al enviar la solicitud de conexión. De esa manera, el servidor backend obtendrá la IP del cliente correcta.
La “opción http-server-close” restringe los recursos al eliminar cualquier conexión inactiva que ocupe los recursos del servidor. Aunque las conexiones WebSocket son de larga duración, debemos comprobar si hay conexiones inactivas de larga duración y cerrarlas para evitar el desperdicio innecesario de recursos.
Por último, agregue los servidores backend que utilizará para distribuir el tráfico. Asegúrese de proporcionar la dirección IP correcta para los servidores y reemplace las de la siguiente imagen:
Su HAProxy ahora está configurado para conexiones WebSocket. Guarde los cambios y cierre el archivo.
3. Prueba de validez
Antes de reiniciar HAProxy, podemos ejecutar un comando rápido para verificar si el archivo es válido y no tiene errores. Para eso, ejecute el siguiente comando:
$ sudo haproxy -C -F / etc. / haproxy / haproxy.cfg
4. Reinicie y pruebe la conexión WebSocket
Una vez que el archivo sea válido, reinicie el servicio HAProxy.
Eso es todo. Configuró HAProxy para conexiones WebSocket. Puede probar la conexión para asegurarse de que todo el tráfico de WebSocket se reenvíe correctamente.
Conclusión
Configurar HAProxy para conexiones WebSocket es una solución buscada, especialmente por los administradores web. Esta publicación elaboró el proceso en detalle, brindando los pasos y un ejemplo para asegurarse de que pueda seguirlo cómodamente y lograr implementar el mismo en su caso. Siga cada paso y asegúrese de comprender el concepto y el proceso para implementarlo.