Nginx drops server our LB if it see HTTP 400.
mdounin at mdounin.ru
Thu Nov 16 16:04:40 UTC 2017
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: 126.96.36.199, server:
> REMOVEDCLIENTDOMAIN, request: "GET /1298310/SNIPPET_OF_URL HTTP/1.1",
> upstream: "https://sslloadbalance/1298310/SNIPPET_OF_URL", host:
> 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
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:
> 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
> HTTP/1.0" 400 226 "-" "-"
No, the theory isn't correct. Responses with status code 400 has
nothing to do with the above error.
More information about the nginx