Strange upstream behaviour

Hello,

We are using nginx as a loadbalancer in front of docker containers. Most
of
the time this works without problems. But sometimes (~0.1% of the
requests)
the requests are sent to the server group name instead of one of the
members
of the servergroup.

upstream gateway {
server 127.0.0.1:6000 weight=1000000;
server 1.2.3.4:6000;
}

server {
listen :443;
ssl on;
server_name ;

<ssl config>

location / {
   proxy_pass http://gateway;
}

}

Most of the time the requests are logged as expected:

03/Feb/2016:04:00:25 +0100 “/api/v1/login” 200 52 “Jersey/2.7
(HttpUrlConnection 1.8.0_51)” “time=0.192” “”
“upstream=127.0.0.1:6000”
or
03/Feb/2016:04:00:25 +0100 “/api/v1/login” 200 52 “Jersey/2.7
(HttpUrlConnection 1.8.0_51)” “time=0.192” “”
“upstream=1.2.3.4:6000”

But randomly this happens:

03/Feb/2016:04:00:25 +0100 “/api/v1/login” 502 52 “Jersey/2.7
(HttpUrlConnection 1.8.0_51)” “time=0.192” “”
“upstream=gateway”

As you can see, it uses the server group name as the upstream target
(which
fails of course since this is not a valid host).

What could be the cause of this behaviour?

All the best,
Armin

Posted at Nginx Forum:
https://forum.nginx.org/read.php?2,264368,264368#msg-264368

Hello!

On Fri, Feb 05, 2016 at 06:26:28AM -0500, abauer wrote:

We are using nginx as a loadbalancer in front of docker containers. Most of
the time this works without problems. But sometimes (~0.1% of the requests)
the requests are sent to the server group name instead of one of the members
of the servergroup.

[…]

But randomly this happens:

03/Feb/2016:04:00:25 +0100 “/api/v1/login” 502 52 “Jersey/2.7
(HttpUrlConnection 1.8.0_51)” “time=0.192” “”
“upstream=gateway”

As you can see, it uses the server group name as the upstream target (which
fails of course since this is not a valid host).

What could be the cause of this behaviour?

Upstream name can be seen in the $upstream_addr variable if nginx
wasn’t able to select an upstream server to connect to because all
servers were down as per max_fails/fail_timeout. At the same time
the “no live upstreams” error is logged to the error log.


Maxim D.
http://nginx.org/

Thank you, that would explain the message. Ill check why the upstream
servers might not have been reachable.

All the best,
Armin

Posted at Nginx Forum:
https://forum.nginx.org/read.php?2,264368,264381#msg-264381

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs