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.
This commit is contained in:
Maxim Dounin 2014-12-09 18:22:39 +03:00
parent 8d7c6491fe
commit 827b2511e6

View File

@ -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) {