proxy pass encoding % problem

Maxim Dounin mdounin at mdounin.ru
Tue May 7 10:37:42 UTC 2013


Hello!

On Tue, May 07, 2013 at 05:45:50AM -0400, Krupa wrote:

> I am using nginx as a reverse proxy. My requirement is nginx needs to pass
> the url passed by client as-is to the proxy server.
> I have set the proxy_pass to hostname:port without the uri part
> As per the docs ,If it is necessary to transmit URI in the unprocessed form
> then directive proxy_pass should be used without URI part
> 
> Despite this,nginx does some sort of processing on the uri.The percentages
> get escaped and are replaced by %25.
> 
> Example: Client url -  http://10.10.10.10:90/this%2Bthat/
> 
> proxy_pass - http://10.10.2.50:8080
> 
> Uri sent by nginx after processing - /this%25bthat/
> 
> Additionaly,when client passes latin characters like %EA,proxy_pass further
> encodes to some random value which cannot be processed by the client.
> Note that changing charset isn't of much help here.
> 
> Any insights,approaches to circumvent this is highly appreciated.

Symptoms you describe suggests there are rewrites in you config 
which mess up things.  Note that proxy_pass even without URI will 
have to re-encode URI if you change it with rewrites.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list