Hi Baptiste,

You put me in the right track, I had over-complicated my config, here is
the working config for anyone who's interested:

frontend servername:80
    bind servername:80
    bind servername:8080
    acl int dst_port 8080
    acl ext dst_port 80
    use_backend server-int if int
    use_backend server-ext if ext
    default_backend server-ext

backend server-ext
    option tcp-check port 80
    option tcp-check port 8080
    stick-table type ip size 1
    stick match dst table server-int
    stick on dst
    server server-01-ext server01:80 check inter 5000
    server server-02-ext server02:80 check inter 5000

backend server-int
    option tcp-check port 80
    option tcp-check port 8080
    stick-table type ip size 1
    stick match dst table server-ext
    stick on dst
    server server-01-int server01:8080 check inter 5000
    server server-02-int server02:8080 check inter 5000

Thanks for your help, it's truly appreciated.

Cheers,
Nathan


On Mon, Apr 21, 2014 at 2:07 PM, Baptiste <[email protected]> wrote:

> Hi Nathan,
>
> Why not simply using a single frontend with two binds pointing to one
> backend?
> It would do the trick.
> Concerning checking, you can use the tcp-check feature to ensure both
> ports are available on each server.
>
> Baptiste
>
> On Mon, Apr 21, 2014 at 1:20 PM, Nathan Reilly <[email protected]>
> wrote:
> > Hello all,
> >
> > I have a situation that I have been trying to get working for days, yet
> > can't seem to get there. There are two sets of requirements, I can get
> > either requirements working in isolation, but not together.
> > First requirement is I need an active/passive failover pair, and in the
> case
> > of failure of one server, connections must stick to the available server
> > until it fails, so if connections are initially to server1, then it
> fails,
> > all connections go to server2, even when server1 comes back online,
> server2
> > must keep servicing requests until it fails, and so on.
> >
> >
> > Second requirement is that I have two backend servers, each with two
> > 'services'. These services are linked, so if either service goes down,
> the
> > entire server must be marked as down.
> >
> > See config so far below,
> >
> > frontend ext servername:80
> >     acl server-01-down nbsrv(server-01) lt 2
> >     acl server-02-down nbsrv(server-02) lt 2
> >     use_backend server-ext-01 if server-02-down
> >     use_backend server-ext-02 if server-01-down
> >     default_backend server-ext-01
> >
> > frontend int servername:8080
> >     stick-table type ip size 1 expire 5d
> >     stick on dst
> >     acl server-01-down nbsrv(server-01) lt 2
> >     acl server-02-down nbsrv(server-02) lt 2
> >     use_backend server-esb-01 if server-02-down
> >     use_backend server-esb-02 if server-01-down
> >     default_backend server-esb-01
> >
> > backend server-01
> >     server server-01-ext server01-ext:80 check inter 5000
> >     server server-02-int server01-int:8080 check inter 5000
> >
> > backend server-02
> >     server server-02-ext server02-ext:80 check inter 5000
> >     server server-02-int server02-int:8080 check inter 5000
> >
> > backend server-ext-01
> >     stick-table type ip size 1 expire 5d
> >     stick on dst
> >     server server-01-ext server01-ext:80 check inter 5000
> >
> > backend server-ext-02
> >     stick-table type ip size 1 expire 5d
> >     stick on dst
> >     server server-02-ext server02-ext:80 check inter 5000
> >
> > backend server-int-01
> >     stick-table type ip size 1 expire 5d
> >     stick on dst
> >     server server-01-int server01-int:8080 check inter 5000
> >
> > backend server-int-02
> >     stick-table type ip size 1 expire 5d
> >     stick on dst
> >     server server-02-int server02-int:8080 check inter 5000
> >
> > Any assistance or recommendations would be greatly appreciated,
> >
> > Thanks in advance,
> >
> > Nathan
>

Reply via email to