nginx: falló la conexión () (111: conexión rechazada) mientras se conectaba a la cadena ascendente

16

Sigo viendo los siguientes mensajes de error en el registro de errores, puedo acceder a todos los recursos, pero no estoy seguro de por qué se está marcando el error.

error:

[error] 13368 # 0: * 449 falló la conexión () (111: conexión rechazada) mientras se conectaba en sentido ascendente, cliente: xxxx, servidor: myserver.com, solicitud: "GET / stories / mine HTTP / 1.1", nivel ascendente: " http: // [:: 1]: 5000 / stories / mine ", host:" myserver.com "

Mi configuración de Nginx

Estoy pasando la conexión a un node.jsclúster que se ejecuta en el puerto 5000. ¿No puedo ver lo que me habría perdido?

upstream api {
    server localhost:5000;
}

server {
    listen 80; 
    server_name myserver.com;
    root /home/user/_api;


# Logging 

error_log /home/user/log/api.error.log notice;
    location / {
        proxy_redirect off;
        proxy_set_header   X-Real-IP            $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host                   $http_host;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_set_header   Connection "";
        proxy_cache one;
        proxy_cache_key sfs$request_uri$scheme;
        proxy_pass         http://api;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
Tam2
fuente
Es 2015 y estoy teniendo el mismo problema. cada vez que se cae un mensaje websocket, este error aparece en el registro.
r3wt

Respuestas:

19

Nginx se conecta a nodjs en el bucle invertido IPv6 [:: 1]. nodejs probablemente solo esté escuchando en IPv4.

Intenta configurar

upstream api {
    server 127.0.0.1:5000;
}
...
Christopher Perrin
fuente
Para aquellos que están confundidos, cambie localhosta127.0.0.1
kouton el
¿Alguna idea si tengo 127.0.0.1 en lugar de localhost y esto sigue sucediendo?
Ken
3
Debe verificar si el servicio está escuchando. Pruebe sudo netstat -pantuy observe si el servicio realmente está escuchando en el puerto.
Christopher Perrin
1
@ChristopherPerrin gracias por ese consejo. Me ayudó a darme cuenta de que uno de mis grupos no estaba escuchando en su puerto, y resultó ser porque otra configuración de grupo estaba reutilizando el mismo nombre, por lo que sobrescribió su configuración
Robbie Averill el
@RobbieAverill es bueno saber que esta respuesta sigue siendo útil
Christopher Perrin el