Hello! On Thu, Mar 08, 2018 at 10:34:36PM +0100, max wrote:
> Sorry if it was already asked but I'd like to know if the only way to > prevent Nginx from decoding uri while using proxy_pass is: > https://stackoverflow.com/a/37584656/3515745 > > Here is my (simplified) conf: > > server { > server_name domain1.com; > > location / { > proxy_pass http://127.0.0.1:81; > > } > > location /api { > proxy_pass http://127.0.0.1:82/; > > } > } > > Location "/" is perfectly working. My problem is that "/api" location will > decode special character. 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/; use 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. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx