From 827b2511e6ffee946b7b5c00a67bc50449fc2d72 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Tue, 9 Dec 2014 18:22:39 +0300 Subject: [PATCH] Proxy: fixed incorrect URI change due to if (ticket #86). In the following configuration request was sent to a backend without URI changed to '/' due to if: location /proxy-pass-uri { proxy_pass http://127.0.0.1:8080/; set $true 1; if ($true) { # nothing } } Fix is to inherit conf->location from the location where proxy_pass was configured, much like it's done with conf->vars. --- src/http/modules/ngx_http_proxy_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c index 5b5ad07b9..f04436de4 100644 --- a/src/http/modules/ngx_http_proxy_module.c +++ b/src/http/modules/ngx_http_proxy_module.c @@ -2997,6 +2997,7 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) && conf->upstream.upstream == NULL && conf->proxy_lengths == NULL) { conf->upstream.upstream = prev->upstream.upstream; + conf->location = prev->location; conf->vars = prev->vars; conf->proxy_lengths = prev->proxy_lengths; @@ -3011,7 +3012,6 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) && (conf->upstream.upstream || conf->proxy_lengths)) { clcf->handler = ngx_http_proxy_handler; - conf->location = prev->location; } if (conf->body_source.data == NULL) {