proxy pass encoding % problem

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


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

More information about the nginx mailing list