aboutsummaryrefslogtreecommitdiff
path: root/src/stream/ngx_stream_upstream_round_robin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stream/ngx_stream_upstream_round_robin.c')
-rw-r--r--src/stream/ngx_stream_upstream_round_robin.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/stream/ngx_stream_upstream_round_robin.c b/src/stream/ngx_stream_upstream_round_robin.c
index a18171a39..e1903b3d2 100644
--- a/src/stream/ngx_stream_upstream_round_robin.c
+++ b/src/stream/ngx_stream_upstream_round_robin.c
@@ -183,6 +183,7 @@ ngx_stream_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;
@@ -251,7 +252,15 @@ ngx_stream_upstream_init_round_robin(ngx_conf_t *cf,
}
}
- if (n + r == 0) {
+ if (n == 0
+#if (NGX_STREAM_UPSTREAM_ZONE)
+ && !resolve
+#endif
+ ) {
+ return NGX_OK;
+ }
+
+ if (n + r == 0 && !(us->flags & NGX_STREAM_UPSTREAM_BACKUP)) {
return NGX_OK;
}
@@ -299,6 +308,7 @@ ngx_stream_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;