Hello,

I'm trying to setup haproxy for a kind a of weird situation.

Here is my architecture:
- Server S0 and S1 can connect to our client services (which we want
to be proxified)
- Server C0 is in a dedicated network and can't access our client FIX
servers directly. He needs to use S0 proxies (S0 and S1).
- Our client's services:
-- are not HTTP services,
-- doesn't allow more than one connection at a time: if another
simultaneous connection is done, it will be open (TCP speaking) but
none of it's applicative requests will be processed.


So my goal is to have my application connected to C0's haproxy, which
connect itself to S0 or S1 haproxy.


Here is my setup:
- On S0 and S1:
frontend f_FIX_SERVER
    bind 10.10.10.{X,Y}:11111
    mode tcp
    default_backend b_FIX_SERVER
backend b_FIX_SERVER
    mode tcp
    server fix_1 10.11.11.11:3129 check
    server fix_2 10.11.11.11:3130 check backup

- On C0
frontend f_FIX_CLIENT
    bind 127.0.0.1:22222
    mode tcp
    default_backend b_FIX_CLIENT
backend b_FIX_CLIENT
    mode tcp
    #S0
    server fix 10.10.10.X:11111 check
    #S1
    server fix 10.10.10.Y:11111 check backup


In case of S0 going DOWN, C0 will use S1 as expected (which is perfect).

But if my client's services goes unreachable on S0, while S0 is still
running, haproxy on C0 will NOT use S1 as haproxy on S0 is still
responding correctly (from C0 haproxy point of view).

I tried to play with "tcp-request connection reject" (and acl with
"nbsrv") on S0 and S1 but without any success.


Do you have any advice to help me?
Am I missing something obvious ?


Thanks for reading.

Regards,
Thomas

Reply via email to