Hi Praveen. Am 15.05.2018 um 16:28 schrieb UPPALAPATI, PRAVEEN: > Hi Alek/Haproxy Team, > > Any other way to effectively get the https proxy working ? > > Currently we are manually adding servers which is putting a limit to get the > dynamic nature.
Not with haproxy out of the box afaik, maybe you can use some lua-scripts. > Thanks, > Praveen. Regards Aleks > -----Original Message----- > From: Aleksandar Lazic [mailto:[email protected]] > Sent: Wednesday, May 09, 2018 6:38 AM > To: UPPALAPATI, PRAVEEN <[email protected]> > Cc: [email protected]; SIVANANDHAM, THANIGAIVEL <[email protected]> > Subject: Re: 502 Bad Gateway > > Hi Praveen. > > Am 09-05-2018 00:25, schrieb UPPALAPATI, PRAVEEN: >> Hi Aleks, >> >> Thanks for the info. >> >> Some of the default config we corrected in the prod. >> >> Let me clarify you on whatz working and whatz not working for us with >> option http-proxy >> >> Config: >> >> listen http_proxy-1000 >> bind *:1000 >> mode http >> option httplog >> http-request set-uri >> https://urldefense.proofpoint.com/v2/url?u=http-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwICaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=p29xLcYDASs3x4Jull7dRenJ5n83VByMzJgUh-as5KE&s=A446uw28K_ENq4r6wM0I8IP1BmfA-kIvREkV-nAa80g&e= >> >> option http_proxy >> >> reqUrl : >> http://<haproxyhost>:1000/test/health.txt?redirHost:<destinationServer>:<port> >> >> this gets converted to: >> >> http:// >> <destinationServer>:<port>/test/health.txt?redirHost:<destinationServer>:<port> > > With blank or without blank? > >> This config in the log still says <noserv> but option http_proxy will >> route to the updated url and I get 200 OK >> >> this is our intended behavior and works fine > > Cool. Then is the '<NOSRV>' a little bit misleading, at least for me. > >> What's not working for us is if we have to do this for https >> >> listen http_proxy-1000 >> bind *:1000 ssl test.pem >> mode http >> option httplog >> http-request set-uri >> https://urldefense.proofpoint.com/v2/url?u=https-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwICaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=p29xLcYDASs3x4Jull7dRenJ5n83VByMzJgUh-as5KE&s=BUzhtM4LAJ_Y8KSJiDEnYdiaFjSV3706amy-DEw693s&e= >> >> option http_proxy >> >> Hope this helps. > > Yes. > > In the doc is only the 'http://' schema mentioned, I'm not sure if https > should work. > https://urldefense.proofpoint.com/v2/url?u=https-3A__cbonte.github.io_haproxy-2Ddconv_1.8_configuration.html-234-2Doption-2520http-5Fproxy&d=DwICaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=p29xLcYDASs3x4Jull7dRenJ5n83VByMzJgUh-as5KE&s=LJalrOltyqxtwsl8VWJF1vWhID6jTOLuPQRgiJW37Qw&e= > > > Sorry for the rush but I can't answer this question. > >> Thanks, >> Praveen. > > Best regards > Aleks > >> -----Original Message----- >> From: Aleksandar Lazic [mailto:[email protected]] >> Sent: Tuesday, May 08, 2018 4:55 PM >> To: UPPALAPATI, PRAVEEN <[email protected]>; [email protected] >> Subject: 502 Bad Gateway >> >> Hi. >> >> Looks like there is some confusion about your question. >> Let me try to summarize what I think that you could mean. >> >> Am 08.05.2018 um 16:22 schrieb UPPALAPATI, PRAVEEN: >>> Hi Aleks, >>> >>> Sorry I missed the group. >>> >>> My Full Config: >>> >>> #--------------------------------------------------------------------- >>> # Example configuration for a possible web application. See the >>> # full configuration options online. >>> # >>> # >>> https://urldefense.proofpoint.com/v2/url?u=http-3A__haproxy.1wt.eu_download_1.3_doc_configuration.txt&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=C4BCJfT0RK1be2KQmPIHso7q5thkyKsIk1ouBDtjtaE&e= >> >> This should be >> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.haproxy.org_download_1.8_doc_configuration.txt&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=q4U8esi96_sOL0XvcAS53n77UDq1oCz3zVhsj6sPHVQ&e= >> or >> https://urldefense.proofpoint.com/v2/url?u=https-3A__cbonte.github.io_haproxy-2Ddconv_1.8_configuration.html&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=mVj1QMb_Ass1oDZB-LXh4cJl_3_UTYoRPxNsxQncTNY&e= >> >>> #--------------------------------------------------------------------- >>> >>> #--------------------------------------------------------------------- >>> # Global settings >>> #--------------------------------------------------------------------- >>> global >>> log 127.0.0.1:514 local0 info alert >>> log 127.0.0.1:514 local2 info alert >>> maxconn 20000 >>> user haproxy >>> group haproxy >>> daemon >>> nbthread 4 >>> ssl-server-verify none >>> >>> tune.ssl.default-dh-param 2048 >>> >>> >>> >>> #--------------------------------------------------------------------- >>> # common defaults that all the 'listen' and 'backend' sections will >>> # use if not designated in their block >>> #--------------------------------------------------------------------- >>> defaults >>> >>> log global >>> mode http >>> option dontlognull >>> rate-limit sessions 6000 >>> timeout connect 300000 # default 10 second time out if a backend >>> is not found >> >> The comment is not true. >> >> The current timeout is 300s >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__cbonte.github.io_haproxy-2Ddconv_1.8_configuration.html-232.4&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=0go0CAnboRAg0FIQf1rqTaUbPxDeuEfStrtb0ul5Z4k&e= >> >>> timeout client 6600000 >>> timeout server 6600000 >> This is 110m ~ 1.8 hours >> >>> option http-server-close >>> maxconn 20000 >>> retries 3 >>> >>> >>> listen http_proxy-1000 >>> bind *:1000 >>> mode http >>> option httplog >>> http-request set-uri >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=Enzg1AulwX2G4bls9I-eiwsFm-vC1gYMGz0GPEpR89o&e= >>> option http_proxy >>> #--------------------------------------------------------------------- >> >> I miss here the server line. >> >>> I also tried : >>> >>> listen http_proxy-1000 >>> bind *:1000 ssl crt certs.pem >>> mode http >>> option httplog >>> http-request set-uri >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=Enzg1AulwX2G4bls9I-eiwsFm-vC1gYMGz0GPEpR89o&e= >>> option http_proxy >> Same here. >> >> I tried also both configs and have the same result '<NOSRV>' as you >> have. >> >> Your line >>>> http-9876~ bk_9876/<NOSRV> 0/0/1/-1/2 502 211 - - PH-- 1/1/0/0/0 0/0 >>>> "GET >> /test/test.txt?idnsredirHost=<destinationhost>:5300 HTTP/1.1" >>>> >> >> My Test >> ### >> May 8 22:52:54 app001 haproxy[5141]: Proxy http_proxy-1000 started. >> May 8 22:52:59 app001 haproxy[5141]: 127.0.0.1:52046 >> [08/May/2018:22:52:59.177] http_proxy-1000 >> http_proxy-1000/<NOSRV> -1/-1/-1/-1/0 400 187 - - PR-- 1/1/0/0/3 0/0 >> "GET >> /test/test.txt?Host=www.google.com:80 HTTP/1.1" >> ### >> >> I think that the you need at least ONE server line. >> >> I assume you want to set the destination server dynamically based on >> the query parameter >> 'Host|idnsredirHost|redirHost', it's not clear which parameter you >> want, as Shawn mentioned. >> >> Maybe you can take a look into the following links. >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__discourse.haproxy.org_t_dynamic-2Dserver-2Dselection_149_2&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=ZRhHfBHC6Uu00ktMxf4fzTwMqKN7YQPjlrES6mBRDA0&e= >> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.egnyte.com_blog_2017_04_dynamic-2Dbackends-2Din-2Dhaproxy-2Dwith-2Dlua_&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=YcEYgyPUHsGsau3PttfPLca26yyBLqDGv3onjyiBVtY&e= >> >> Is this what you need? >> >>>> HAProxy Version : >>> >>> //opt/app/haproxy/sbin/haproxy -vv >>> HA-Proxy version 1.8.4-1deb90d 2018/02/08 >> >> [snipp] >> >>>> Was the acl below helpfull? >>> Yes and also wanted to know if there is a way to print o/p of : >>> hdr_beg(host) for debug purposes >> >> You can capture the host header the captured one will be displayed in >> the logs. >> I don't think that you only can get the result of `hdr_beg(host)` >> easily, maybe I'm wrong. >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__cbonte.github.io_haproxy-2Ddconv_1.8_configuration.html-234.2-2Dcapture-2520request-2520header&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=z6c842RukY_SP9qpAA7lFdR032fMh2Ko1cj5mxqeLPI&s=3h2iuYZHv2LKLc2sQwlp4kKRyksmDOdijU7C9fLnI7c&e= >> >> Config: >> >> ``` >> capture request header Host len 15 >> ``` >> >> ``` >> ubuntu@app001:~$ curl -v >> 'http://localhost:1000/test/test.txt?Host=www.google.com:80' >> * Trying 127.0.0.1... >> * Connected to localhost (127.0.0.1) port 1000 (#0) >>> GET /test/test.txt?Host=www.google.com:80 HTTP/1.1 >>> Host: localhost:1000 >>> User-Agent: curl/7.47.0 >>> Accept: */* >>> >> * HTTP 1.0, assume close after body >> < HTTP/1.0 400 Bad request >> < Cache-Control: no-cache >> <Connection:close> < Content-Type: text/html >> < >> <html><body><h1>400 Bad request</h1> >> Your browser sent an invalid request. >> </body></html> >> * Closing connection 0 >> >> ubuntu@app001:~$ fg >> sudo tail -f /var/log/haproxy.log >> May 8 23:37:54 app001 haproxy[8804]: Proxy http_proxy-1000 started. >> May 8 23:37:58 app001 haproxy[8804]: 127.0.0.1:35988 >> [08/May/2018:23:37:58.074] http_proxy-1000 >> http_proxy-1000/<NOSRV> -1/-1/-1/-1/0 400 187 - - PR-- 1/1/0/0/3 0/0 >> {localhost:1000} "GET >> /test/test.txt?Host=www.google.com:80 HTTP/1.1" >> ``` >> >> Best regards >> >> Aleks >> >>> Thanks, >>> Praveen. >>> >>> -----Original Message----- >>> From: Aleksandar Lazic [mailto:[email protected]] >>> Sent: Tuesday, May 08, 2018 7:40 AM >>> To: UPPALAPATI, PRAVEEN <[email protected]>; [email protected] >>> Subject: Re: 502 Bad Gateway >>> >>> Hi. >>> >>> Please post only to the mailing list, thanks. >>> Please keep the mailinglist in the mail loop => "Answer all". >>> >>> Am 08.05.2018 um 07:25 schrieb UPPALAPATI, PRAVEEN: >>>> Hi Haproxy-Team, >>>> >>>> I have the following configuration: >>>> >>>> listen http_proxy-1000 >>>> bind *:1000 >>>> mode http >>>> option httplog >>>> http-request set-uri >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=t6xdq_k-rDqDEV6GmhRRj82gitY4t9bgda30YThyHHs&s=6xIYqpeCV09krEHS_i6n3zf7hYuKGEadSHB9ny25O7g&e= >>>> option http_proxy >>> >>> This isn't the whole config, isn't it? >>> >>> The 'url_param' does not match the request below, afais. >>> >>> Please can you answer the following questions. >>> >>> Which HAProxy Version do you use? >>> What's the whole HAProxy config? >>> Was the acl below helpfull? >>> >>> Regards >>> Aleks >>> >>>> If I issue a request to that port : >>>> >>>> https://<haproxyHost>:1000 >>>> /test/test.txt?Host=<desthost>:8093 >>>> >>>> I get <BadReq> >>>> >>>> If I add ssl termination to the config: >>>> >>>> listen http_proxy-1000 >>>> bind *:1000 ssl test.pem >>>> mode http >>>> option httplog >>>> http-request set-uri >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__-25-5Burl-5Fparam-28redirHost-29-5D-25-5Bcapture.req.uri-5D&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=V0kSKiLhQKpOQLIjj3-g9Q&m=t6xdq_k-rDqDEV6GmhRRj82gitY4t9bgda30YThyHHs&s=6xIYqpeCV09krEHS_i6n3zf7hYuKGEadSHB9ny25O7g&e= >>>> option http_proxy >>>> >>>> >>>> I get : >>>> http-9876~ bk_9876/<NOSRV> 0/0/1/-1/2 502 211 - - PH-- 1/1/0/0/0 0/0 >>>> "GET /test/test.txt?idnsredirHost=<destinationhost>:5300 HTTP/1.1" >>>> >>>> I have also set : >>>> >>>> ssl-server-verify none >>>> >>>> @global still no luck. >>>> >>>> Let me know if I am missing anything . >>>> >>>> Thanks, >>>> Praveen. >>>> >>>> >>>> -----Original Message----- >>>> From: Aleksandar Lazic [mailto:[email protected]] >>>> Sent: Tuesday, May 01, 2018 7:22 AM >>>> To: UPPALAPATI, PRAVEEN <[email protected]>; Willy Tarreau <[email protected]> >>>> Cc: Olivier Houchard <[email protected]>; [email protected] >>>> Subject: Re: Logging Question >>>> >>>> Hi. >>>> >>>> Am 30.04.2018 um 19:05 schrieb UPPALAPATI, PRAVEEN: >>>>> >>>>> Hi Willy/Oliver, >>>>> >>>>> One small question: >>>>> >>>>> When I capture the header it's returning xxxx.com in the log but >>>>> when I perform Get on xxxx.com:1000 it is not matching the following >>>>> configuration. >>>>> >>>>> frontend http-1000 >>>>> bind *:1000 >>>>> option httplog >>>>> capture request header Host len 20 >>>>> acl is_east hdr(host) -i xxxx.com >>>> >>>> Maybe this helps? >>>> >>>> acl is_east hdr_beg(host) -i xxxx.com >>>> >>>>> use_backend east_bk_1000_read if is_east >>>>> >>>>> My question is how can I print o/p of hdr(host) & is_east to log? >>>>> >>>>> Appreciate your help. >>>>> >>>>> Thanks, >>>>> Praveen. >>>> >>>> Regards >>>> Aleks

