Nginx drops server our LB if it see HTTP 400.
Maxim Dounin
mdounin at mdounin.ru
Thu Nov 16 16:04:40 UTC 2017
Hello!
On Thu, Nov 16, 2017 at 03:03:49PM +0200, Brent Clark wrote:
> Good day Guys
>
> I'm sitting with a very peculiar problem, and I was hoping someone could
> be of assistance.
>
> Right now everything is a theory, but when I switch back to LVS
> everything works. Reason I like and want Nginx is for the reverse
> caching (caching of images).
>
> As said, Im using Nginx for reverse caching and load balancing, and I'm
> seeing the following in the Nginx error log.
>
> 2017/11/16 10:16:38 [error] 75140#75140: *27952 no live upstreams while
> connecting to upstream, client: 52.169.148.4, server:
> REMOVEDCLIENTDOMAIN, request: "GET /1298310/SNIPPET_OF_URL HTTP/1.1",
> upstream: "https://sslloadbalance/1298310/SNIPPET_OF_URL", host:
> "REMOVEDCLIENTDOMAIN".
>
> I understand that, Nginx says is cant connect to the backend servers,
> but the backend servers are 100%.
It says that all the backends configured previously failed and
not allowed to serve requests due to max_fails / fail_timeout
configured.
Look for previously reported errors to find out exact errors, and
take a look at your proxy_next_upstream configuration in case it's
not the default one.
More information is here:
http://nginx.org/r/proxy_next_upstream
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#max_fails
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#fail_timeout
> My theory is, when ever a URL is called and an HTTP 400 is returned,
> Nginx picks this up, and does not like it, and then drops the server
> out., e.g.
>
> REMOVED_IP_OF_LB - - [16/Nov/2017:10:16:38 +0200] "GET
> /wp-admin/admin-ajax.php?action=yop_poll_load_js&id=-1&location=page&unique_id=_yp5a0d4965c79ac&ver=5.5
> HTTP/1.0" 400 226 "-" "-"
No, the theory isn't correct. Responses with status code 400 has
nothing to do with the above error.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx
mailing list