proxy pass encoding % problem
mdounin at mdounin.ru
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 - 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.
More information about the nginx