Excellent - this may be what we need

Can I do further http swittching in the backend (based on hostnames) or can
this only be done in the front end?

On 4 June 2010 08:56, Willy Tarreau <w...@1wt.eu> wrote:

> On Wed, Jun 02, 2010 at 04:18:33PM +0100, Laurie Young wrote:
> > Hi everyone
> >
> > I have a problem, and I'm not sure if HAProxy can solve it
> >
> > I have a range of different requests coming in on a server to port 80,
> and
> > am using HAProxy to switch them to the relevant back end servers.
> >
> > Most of these requests are HTTP requests and I have layer 7 mode working
> > fine, doing everything i need
> >
> > Now I have to also send a tcp request though the same port. I need
> HAProxy
> > to detect if it is a tcp request, and if so route it to server 1,
> otherwise
> > parse the HTTP and work out which server to use based on the HTTP content
> >
> > Is this possible?
>
> Yes this is possible with version 1.4. For this you need to have a TCP
> frontend and an HTTP backend. Using tcp inspection rules, you define
> how long you wait for an HTTP request. If a valid HTTP request comes
> in time, you switch to the HTTP backend. If none comes in time, of if
> the traffic is not HTTP, then you use the TCP backend. Some people use
> this to open SSH on port 80 or 443 ;-)
>
> However there are some drawbacks. Since the logs are defined by the
> frontend, you won't benefit from HTTP logging, you'll only have TCP
> logging.
>
> Also, if you want to try this, you should upgrade to 1.4.7 (which is
> not yet released but available as a snapshot) because it fixes an
> issue with the HTTP protocol detection. One field was not properly
> initialized, so once HTTP was detected on a connection, it was likely
> that further connections would be detected as HTTP too.
>
> Example of usage :
>
>    frontend xxxx
>        bind :80
>        mode tcp
>        option tcplog
>        tcp-request inspect-delay 5s
>        tcp-request content accept if HTTP
>        use_backend http_backend if HTTP
>        default_backend tcp_backend
>
>   backend tcp_backend
>        # tcp-only config
>
>   backend http_backend
>        # http-only config
>        mode http
>
> Regards,
> Willy
>
>


-- 
Dr Laurie Young
Scrum Master
New Bamboo

Follow me on twitter: @wildfalcon
Follow us on twitter:  @newbamboo

Creating fresh, flexible and fast-growing web applications is our passion.


3rd Floor, Gensurco House,
46A Rosebery Avenue, London, EC1R 4RP

http://www.new-bamboo.co.uk

Reply via email to