Upstream: fixed ngx_http_upstream_test_next() conditions.
Upstream: fixed ngx_http_upstream_test_next() conditions.

Previously, ngx_http_upstream_test_next() used an outdated condition on
whether it will be possible to switch to a different server or not.  It
did not take into account restrictions on non-idempotent requests, requests
with non-buffered request body, and the next upstream timeout.

For such requests, switching to the next upstream server was rejected
later in ngx_http_upstream_next(), resulting in nginx own error page
being returned instead of the original upstream response.

hy0kl/nginx,hy0kl/nginx,hy0kl/nginx