Hi,

> De: "Ульянка Да" <dekap...@yandex.ru>
> À: haproxy@formilux.org
> Envoyé: Vendredi 10 Mars 2017 10:14:30
> Objet: Re: Does reqrep work?
> 
> Update:
> reqrep changes requests, but harmfully, that results in error 400
> (bad request).
> How to debug the harm keeping in mind that traffic is SSLed?

Create a minimal config to debug your regex, you'll see that you have to 
rethink it (see below).

> 09.03.2017, 17:34, "Ульянка Да" <dekap...@yandex.ru>:
> > Hi,
> >
> > I wonder if reqrep works?
> > I need to replace request /ABC/collection/XXX/ to
> > /collection/collection_XXX/
> > So I have the following line in my haproxy.cfg:
> >
> > reqrep ^([^\ :]*)\ /ABC/collection/(.*)/ \1\
> > /collection/collection_\2/

Here, the client will send a request, according to your regex, this will 
produce :
GET /ABC/collection/1592/ HTTP/1.1
^-^ ^------------------------^ ^-^
\1  \2                         (dropped)
Once replaced you'll send this request to the backend :
GET /collection/collection_1592/ HTTP/

Look at the end, the protocol version has disappeared.

> >
> > But instead of substitution I got nothing but error 400:
> >
> > Mar 9 17:12:46 localhost haproxy[16670]: 185.94.108.37:41710
> > [09/Mar/2017:17:12:46.373] fe~ be/srv1 518/0/0/1/519 400 2764 - -
> > ---- 446/432/26/13/0 0/0 "GET /ABC/collection/1592/ HTTP/1.1"
> >
> > What is wrong, please?
> >
> > haproxy -vv:
> >
> > HA-Proxy version 1.5.2 2014/07/12
> > Copyright 2000-2014 Willy Tarreau <w...@1wt.eu>
> >
> > Build options :
> >   TARGET = linux2628
> >   CPU = generic
> >   CC = gcc
> >   CFLAGS = -O2 -g -fno-strict-aliasing
> >   OPTIONS = USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1
> >   USE_OPENSSL=1 USE_PCRE=1
> >
> > Default settings :
> >   maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents
> >   = 200
> >
> > Encrypted password support via crypt(3): yes
> > Built with zlib version : 1.2.3
> > Compression algorithms supported : identity, deflate, gzip
> > Built with OpenSSL version : OpenSSL 1.0.1e-fips 11 Feb 2013
> > Running on OpenSSL version : OpenSSL 1.0.1e-fips 11 Feb 2013
> > OpenSSL library supports TLS extensions : yes
> > OpenSSL library supports SNI : yes
> > OpenSSL library supports prefer-server-ciphers : yes
> > Built with PCRE version : 7.8 2008-09-05
> > PCRE library supports JIT : no (USE_PCRE_JIT not set)
> > Built with transparent proxy support using: IP_TRANSPARENT
> > IPV6_TRANSPARENT IP_FREEBIND
> >
> > Available polling systems :
> >       epoll : pref=300, test result OK
> >        poll : pref=200, test result OK
> >      select : pref=150, test result OK
> > Total: 3 (3 usable), will use epoll.
> 
> 

Reply via email to