When you want nginx to replace matching part of the URI with "/",
> it will do so on the decoded/normalized URI, and will re-encode
> special characters in what's left.
> If you want nginx to preserve original URI as sent by the client,
> consider using proxy_pass without the URI part. That is,
> instead of
> proxy_pass http://127.0.0.1:82/;
> proxy_pass http://127.0.0.1:82;
> Note no trailing "/". This way the original URI as sent by the
> client will be preserved without any modifications.
Thank you for your answer but it is not correct for location different than
'/'. With your proposal, targeting http://domain1.com/api/foo/bar, socket
on port 82 receives: /api/foo/bar. I guess the only way to remove the /api
part is "rewrite" and involves re-encoding...
nginx mailing list