Mercurial > hg > nginx
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 } |