mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 11:19:00 +08:00
Upstream: detect port absence in fastcgi_pass with IP literal.
If fastcgi_pass (or any look-alike that doesn't imply a default port) is specified as an IP literal (as opposed to a hostname), port absence was not detected at configuration time and could result in EADDRNOTAVAIL at run time. Fixed this in such a way that configs like http { server { location / { fastcgi_pass 127.0.0.1; } } upstream 127.0.0.1 { server 10.0.0.1:12345; } } still work. That is, port absence check is delayed until after we make sure there's no explicit upstream with such a name.
This commit is contained in:
parent
917c47a918
commit
3352461916
@ -5408,7 +5408,7 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags)
|
||||
uscf->default_port = u->default_port;
|
||||
uscf->no_port = u->no_port;
|
||||
|
||||
if (u->naddrs == 1) {
|
||||
if (u->naddrs == 1 && (u->port || u->family == AF_UNIX)) {
|
||||
uscf->servers = ngx_array_create(cf->pool, 1,
|
||||
sizeof(ngx_http_upstream_server_t));
|
||||
if (uscf->servers == NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user