﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
786	url decoding is senseless for proxy_pass	aliquid@…		"I understand that URLs such as http://server/some%2Fpath is translated to http://server/some/path for security reasons. NginX is responsible for protecting NginX resources.

When configuring a stop-search URI for reverse proxy access, like

{{{
location ^~ /publicAppName/ {
  proxy_pass http://internal.local/; #trailing / to drop /publicAppName/
  proxy_redirect default;
}
}}}

then flow is locked onto target -- it will go to the internal.local server. Whatever application is running there is not NginX' responsibility. Dropping the trailing slash in proxy_pass URL forwards the URI part as-is, which is fine, it is upp to internal.local server to deal with any issues.

It does not make sense '''not to forward as-is''' the remaining URI (without /publicAppName/) when there '''is''' a trailing slash in proxy_pass URL.

Today, url decoding is enforced in this situation, possibly to ""protect"" internal.local server. Problem is if internal.local is running an application that is dependant on encoded urls provided by 3rd party tools (e.g. sinopia and npm), then there is no way to front this with an application prefix using NginX.  Internal.local does not need protection, dropping one shoe for this is for the better."	defect	closed	minor		nginx-core	1.8.x	wontfix	proxy_pass, url decoding		FreeBSD Infra 9.3-RELEASE-p25 FreeBSD 9.3-RELEASE-p25 #0 r281084+d3a5bf7: Wed Sep  2 15:00:10 PDT 2015     root@build3.ixsystems.com:/tank/home/jkh/build/FN/objs/os-base/amd64/tank/home/jkh/build/FN/FreeBSD/src/sys/FREENAS.amd64  amd64	"nginx version: nginx/1.8.0
built with OpenSSL 0.9.8za-freebsd 5 Jun 2014
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-file-aio --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_gzip_static_module --with-http_gunzip_module --with-http_stub_status_module --with-pcre --with-http_ssl_module
"
