aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@nginx.com>2012-11-16 12:18:05 +0000
committerRuslan Ermilov <ru@nginx.com>2012-11-16 12:18:05 +0000
commit4d0d2b20ac71f6749b2e3a15f28075ec59531c71 (patch)
treef92e90b6e82d8abbb4add5d8ad68f154f2e9f54b /src
parentb67dbca1caaaf2b5b4ea9a3404812a40cd4ab868 (diff)
downloadnginx-4d0d2b20ac71f6749b2e3a15f28075ec59531c71.tar.gz
nginx-4d0d2b20ac71f6749b2e3a15f28075ec59531c71.zip
Upstream: honor the "down" flag for a single server.
If an upstream block was defined with the only server marked as "down", e.g. upstream u { server 127.0.0.1:8080 down; } an attempt was made to contact the server despite the "down" flag. It is believed that immediate 502 response is better in such a case, and it's also consistent with what is currently done in case of multiple servers all marked as "down".
Diffstat (limited to 'src')
-rw-r--r--src/http/ngx_http_upstream_round_robin.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c
index c4998fca5..4b78cffd8 100644
--- a/src/http/ngx_http_upstream_round_robin.c
+++ b/src/http/ngx_http_upstream_round_robin.c
@@ -430,6 +430,10 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data)
if (rrp->peers->single) {
peer = &rrp->peers->peer[0];
+ if (peer->down) {
+ goto failed;
+ }
+
} else {
/* there are several peers */