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. > >