HAProxy: múltiples interfaces, mismo enlace

10

¿Es esto posible / correcto configurar múltiples interfaces que se unen al mismo puerto en HAProxy?

frontend A
    bind :80
    bind :2000-5000
    acl rule_about_A
    use_backend server_A if rule_about_A

frontend B
    bind :80
    acl rule_about_B
    use_backend server_B if rule_about_B

En este caso de uso, la interfaz A debe unirse a 80 y al rango 2000-5000. Para el frontend B, no quiero vincularlo a todos esos puertos, solo a 80.

Pensé que se vería limpio si lo configuro de esa manera, en su lugar, uso una interfaz simple y juego con las ACL, pero parece que esa configuración está haciendo que HAProxy funcione mal, a veces aplica la regla correcta y otras no.

Antes de unir esas interfaces como una sola, ¿ es posible utilizar múltiples interfaces que se unan a los mismos puertos?

EDITAR: Por cierto, estoy usando HAProxy 1.5

JonDoe297
fuente

Respuestas:

10

No, no puedes hacer esto y esperar un comportamiento sensato.

Las solicitudes para el puerto 80 llegarán aparentemente al azar en un extremo frontal u otro. El resultado de dicha configuración es indefinido y, aunque técnicamente no es válido, es para todos los fines prácticos una configuración sin sentido.

Todas las reglas que se aplican en el puerto 80 (o cualquier puerto) deben especificarse en un único frontend(o uno listen) que esté vinculado al puerto 80.

Michael - sqlbot
fuente