nginx: connect () non riuscito (111: connessione rifiutata) durante la connessione a monte


16

Continuo a vedere i seguenti messaggi di errore nel registro degli errori, posso accedere a tutte le risorse ma non sono sicuro del motivo per cui l'errore sta segnalando.

errore:

[errore] 13368 # 0: * 449 connect () non riuscito (111: connessione rifiutata) durante la connessione a monte, client: xxxx, server: myserver.com, richiesta: "GET / stories / mine HTTP / 1.1", upstream: " http: // [:: 1]: 5000 / stories / mine ", host:" myserver.com "

My Nginx config

Sto passando la connessione a un node.jscluster in esecuzione sulla porta 5000. Non riesci a vedere cosa mi sarei perso?

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";
    }
}

È il 2015 e sto riscontrando lo stesso problema. ogni volta che un messaggio sul websocket viene eliminato, questo errore appare nel registro.
r3wt

Risposte:


19

Nginx si collega a nodjs sul loopback IPv6 [:: 1]. nodejs probabilmente sta solo ascoltando su IPv4.

Prova a impostare

upstream api {
    server 127.0.0.1:5000;
}
...

Per coloro che sono confusi, localhostpassa a127.0.0.1
kouton il

Qualche idea se ho 127.0.0.1 invece di localhost e questo continua a succedere?
Ken,

3
È necessario verificare se il servizio è in ascolto. Prova a sudo netstat -pantuvedere se il servizio è effettivamente in ascolto sulla porta.
Christopher Perrin,

1
@ChristopherPerrin grazie per questo consiglio. Mi ha aiutato a capire che uno dei miei pool non era in ascolto sulla sua porta, e si è scoperto perché un'altra configurazione di pool stava riutilizzando lo stesso nome in modo da sovrascriverne la configurazione
Robbie Averill

@RobbieAverill bello sapere che questa risposta è ancora utile
Christopher Perrin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.