]> git.kaiwu.me - nginx.git/commitdiff
"down" server caused endless loop
authorIgor Sysoev <igor@sysoev.ru>
Tue, 7 Aug 2007 12:34:20 +0000 (12:34 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 7 Aug 2007 12:34:20 +0000 (12:34 +0000)
src/http/ngx_http_upstream_round_robin.c

index 6756d2bc22cf2b393fe0c3b345f3d6e0cf58109b..73896fc9caa3ad3526c1d8b35768f07a869b2e32 100644 (file)
@@ -48,11 +48,11 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
                 peers->peer[n].sockaddr = server[i].addrs[j].sockaddr;
                 peers->peer[n].socklen = server[i].addrs[j].socklen;
                 peers->peer[n].name = server[i].addrs[j].name;
-                peers->peer[n].weight = server[i].weight;
-                peers->peer[n].current_weight = server[i].weight;
                 peers->peer[n].max_fails = server[i].max_fails;
                 peers->peer[n].fail_timeout = server[i].fail_timeout;
                 peers->peer[n].down = server[i].down;
+                peers->peer[n].weight = server[i].down ? 0 : server[i].weight;
+                peers->peer[n].current_weight = peers->peer[n].weight;
                 n++;
             }
         }