Hello, I am totally new to nginx, so please forgive me if I am wrong. I propose the following change: https://github.com/nginx/nginx/blob/master/src/http/ngx_http_upstream_round_robin.c#L615 From: if (state & NGX_PEER_FAILED) To: if (state & (NGX_PEER_FAILED || NGX_PEER_NEXT))
Note: The value causing us trouble: state = NGX_PEER_NEXT // on HTTP 404 Comes from: https://github.com/nginx/nginx/blob/master/src/http/ngx_http_upstream.c#L4097 Regular round robin seems to work fine. But with a configuration like: upstream live { server 10.16.48.227:8090; server 10.16.48.228:8090 backup; } We get a nice failover for HTTP 502. But for HTTP 404 we get a forever-loop, just like the one mentioned in Changes with nginx 1.3.0: *) Bugfix: nginx might loop infinitely over backends if the "proxy_next_upstream" directive with the "http_404" parameter was used and there were backup servers specified in an upstream block. So we get looping despite the fix. The proposed edit stops the looping for us, but I cannot see the full consequences. And of course it is possible that we can fix it by just some configuration change. What do you think? Thanks Adam
_______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel