comparison src/http/ngx_http_upstream.c @ 6788:3fa5983b6b44

Upstream: don't consider default_port when matching upstreams. The only thing that default_port comparison did in the current code is prevented implicit upstreams to the same address/port from being aliased for http and https, e.g.: proxy_pass http://10.0.0.1:12345; proxy_pass https://10.0.0.1:12345; This is inconsistent because it doesn't work for a similar case with uswgi_pass: uwsgi_pass uwsgi://10.0.0.1:12345; uwsgi_pass suwsgi://10.0.0.1:12345; or with an explicit upstream: upstream u { server 10.0.0.1:12345; } proxy_pass http://u; proxy_pass https://u; Before c9059bd5445b, default_port comparison was needed to differentiate implicit upstreams in proxy_pass http://example.com; and proxy_pass https://example.com; as u->port was not set.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 17 Oct 2016 14:27:45 +0300
parents 640e1e778de6
children 4dea01cf49e8
comparison
equal deleted inserted replaced
6787:640e1e778de6 6788:3fa5983b6b44
5758 && uscfp[i]->port != u->port) 5758 && uscfp[i]->port != u->port)
5759 { 5759 {
5760 continue; 5760 continue;
5761 } 5761 }
5762 5762
5763 if (uscfp[i]->default_port && u->default_port
5764 && uscfp[i]->default_port != u->default_port)
5765 {
5766 continue;
5767 }
5768
5769 if (flags & NGX_HTTP_UPSTREAM_CREATE) { 5763 if (flags & NGX_HTTP_UPSTREAM_CREATE) {
5770 uscfp[i]->flags = flags; 5764 uscfp[i]->flags = flags;
5771 uscfp[i]->port = 0; 5765 uscfp[i]->port = 0;
5772 uscfp[i]->default_port = 0; 5766 uscfp[i]->default_port = 0;
5773 } 5767 }