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.

Thanks,
Praveen.

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

Reply via email to