
Me gustaría usar HAproxy para verificar si mis servidores de base de datos están en línea, sin enrutar las solicitudes a través del cuadro HAproxy. ¿Hay alguna forma de conectarme a HAproxy y hacer que devuelva una dirección IP del host de base de datos?
por ejemplo: desde el servidor web n.° 1 me conecto a HAproxy en el puerto 3306. HAproxy escucha en 3306 y repite el host de base de datos n.° 1 de una lista de hosts de base de datos (por turnos). Luego, desde el servidor web n.° 1, me conecto directamente al host de base de datos n.° 1.
Respuesta1
No con vanilla haproxy, pero tuve el mismo problema y parcheé haproxy para agregar exactamente esta funcionalidad. Es posible que se incluya en el propio haproxy en algún momento (el autor se mostró positivo al respecto, pero solicitó algunos cambios que aún no pude realizar).
Si estás interesado, compartiré este parche. Pero pregúntese si realmente lo necesita. ¿Por qué el equilibrio de carga "normal" no es lo suficientemente bueno, tal vez con el retorno directo del servidor para que el tráfico de retorno evite el equilibrador de carga? Ejecutar un producto estable y compatible puede ser más deseable que tener laexactofuncionalidad que desee (que, afaik, no existe en ningún balanceador de carga de código abierto, y ni siquiera en los de código cerrado que miré).