From: Ruslan Ermilov Date: Mon, 17 Oct 2016 11:14:02 +0000 (+0300) Subject: Upstream: consistently initialize explicit upstreams. X-Git-Tag: release-1.11.6~14 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=1f5d97cbf0005f7c8c6f15888ea5c36318da920a;p=nginx.git Upstream: consistently initialize explicit upstreams. When an upstream{} block follows a proxy_pass reference to it, such an upstream inherited port and default_port settings from proxy_pass. This was different from when they came in another order (see ticket #1059). Explicit upstreams should not have port and default_port in any case. This fixes the following case: server { location / { proxy_pass http://u; } ... } upstream u { server 127.0.0.1; } server { location / { proxy_pass https://u; } ... } but not the following: server { location / { proxy_pass http://u; } ... } server { location / { proxy_pass https://u; } ... } upstream u { server 127.0.0.1; } --- diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index 55bd47d02..828b7d726 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -5768,6 +5768,8 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags) if (flags & NGX_HTTP_UPSTREAM_CREATE) { uscfp[i]->flags = flags; + uscfp[i]->port = 0; + uscfp[i]->default_port = 0; } return uscfp[i];