HAProxy: multiple frontends, same bind
Is this possible / correct to configure multiple frontends that binds to the same port on 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
In this use case, the frontend A needs to bind to 80 and to the range 2000-5000. For the frontend B, I don't want to bind it to all of those ports, only to 80.
I thought it would looks clean if I configure it in that way, instead use a single frontend and play with the ACLs, but it seems like that configuration is making HAProxy works wrong - sometimes applies the correct rule and sometimes, not.
Before to join those frontends as a single one, is it possible to use multiple frontends that bind to same ports?
EDIT: BTW, I'm using HAProxy 1.5
No, you can't do this and expect sensible behavior.
The requests for port 80 will arrive seemingly randomly at one front end or the other. The result of such a configuration is undefined, and though not technically i valid, it is for all practical purposes a nonsensical configuration.
All of the rules applying on port 80 (or any port) need to be specified on a single frontend
(or a single listen
) that is bound to port 80.