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