Re: Problem: host header keeps the IP of the HAProxy server

From: Hervé COMMOWICK <hcommowick#exosec.fr>
Date: Thu, 11 Aug 2011 12:34:04 +0200


reqrep <yoursearch> <yourstring> if { srv_id <idofyourserver> }

server's id can be forced with "id" keyword if needed

Regards,

Hervé.

On Thu, 11 Aug 2011 13:22:36 +0300
Ran S <ran#sheinberg.net> wrote:

> Well, I have no idea if this mailing list is active, as I have gotten
> no response, but I'll give it another try.
>
> I managed to change the Host header using ReqRep successfully.
>
> However, now I am in a state where one of the backends need this
> change, and the other one doesn't.
> How would I go about configuring this?
>
> If I put the two backends under one backend node, they both get the
> ReqRep parameter, and then one of the servers can't work with the
> replaced host header.
> If I put them in two backend nodes, how can I get the frontend node to
> balance between the two? this appears to be the correct way but I
> can't find the right command.
>
> Thanks
>
> On Wed, Aug 10, 2011 at 5:00 PM, Ran S <ran#sheinberg.net> wrote:
>
> > Hello all,
> >
> > I am trying to use HAProxy for the following configuration:
> > Two Linux servers (node1, node2) running apache (on port 85) and
> > squid and acting as Proxy servers to the Internet
> > I installed HAProxy on node1, and configured it to listen to port
> > 80, and have the backends in their respective apache port 85.
> >
> > While node1 is the only active server in the backend servers list,
> > I can make a request to node1:80 and it will be successfully
> > redirected to the apache port and returned to me.
> >
> > However while node2 is the only active backend server, this flow
> > will fail and I will simply get a blank page with HTTP 200.
> > I think I know why that is. when sniffing on node1, I can see the
> > following request flow:
> >
> > 1. My browser making web the request to node1:80
> > 2. Node1 making the request to node2.
> > But, this is where the problem comes in.
> > The source IP is node1
> > The Destination IP is node2
> > However the Host in this request is the node1 IP address
> >
> > So, since node2 backend server is actually a proxy server, it will
> > take the IP address from the Host header it received and make a
> > request to node1 (since it has it in the request's Host header) and
> > the failure will come in.
> >
> > So I guess what I'm asking is what would be the correct option to
> > use in HAproxy in order to have this set up the right way.
> >
> > I copied the configuration file from one of the examples and
> > trimmed it down to the very basic so I can eliminate anything
> > that's causing the problems, so here it is:
> >
> > * global*
> > * daemon*
> > * maxconn 256*
> > *
> > *
> > * defaults*
> > * mode http*
> > * timeout connect 5000ms*
> > * timeout client 50000ms*
> > * timeout server 50000ms*
> > * balance roundrobin*
> > * option forwardfor*
> > *
> > *
> > * frontend http-in*
> > * bind *:80*
> > * default_backend servers*
> > *
> > *
> > * backend servers*
> > * server <node1name> <node1ip>:85*
> >
> >
> > Many thanks in advance for any help! please let me know if you need
> > any more information.
> >
> > Thanks,
> > Ran
> >
> >
> >

-- 
Hervé COMMOWICK, EXOSEC (http://www.exosec.fr/)
ZAC des Metz - 3 Rue du petit robinson - 78350 JOUY EN JOSAS
Tel: +33 1 30 67 60 65  -  Fax: +33 1 75 43 40 70
mailto:hcommowick#exosec.fr
Received on 2011/08/11 12:34

This archive was generated by hypermail 2.2.0 : 2011/08/11 12:45 CEST