aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_upstream_round_robin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/ngx_http_upstream_round_robin.c')
-rw-r--r--src/http/ngx_http_upstream_round_robin.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c
index cc1b6d1a2..5dbd4e626 100644
--- a/src/http/ngx_http_upstream_round_robin.c
+++ b/src/http/ngx_http_upstream_round_robin.c
@@ -176,6 +176,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
}
peer[n].host->name = server[i].host;
+ peer[n].host->service = server[i].service;
peer[n].sockaddr = server[i].addrs[0].sockaddr;
peer[n].socklen = server[i].addrs[0].socklen;
@@ -245,7 +246,15 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
}
}
- if (n + r == 0) {
+ if (n == 0
+#if (NGX_HTTP_UPSTREAM_ZONE)
+ && !resolve
+#endif
+ ) {
+ return NGX_OK;
+ }
+
+ if (n + r == 0 && !(us->flags & NGX_HTTP_UPSTREAM_BACKUP)) {
return NGX_OK;
}
@@ -293,6 +302,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
}
peer[n].host->name = server[i].host;
+ peer[n].host->service = server[i].service;
peer[n].sockaddr = server[i].addrs[0].sockaddr;
peer[n].socklen = server[i].addrs[0].socklen;