nginx: connect () falhou (111: Conexão recusada) ao conectar-se ao upstream

16

Continuo vendo as mensagens de erro abaixo no log de erros, posso acessar todos os recursos, mas não tenho certeza do motivo pelo qual o erro está sendo sinalizado.

erro:

[erro] 13368 # 0: * 449 connect () falhou (111: conexão recusada) ao conectar-se a montante, cliente: xxxx, servidor: myserver.com, solicitação: "GET / stories / mine HTTP / 1.1", upstream: " http: // [:: 1]: 5000 / stories / mine ", host:" myserver.com "

Minha configuração do Nginx

Estou passando a conexão para um node.jscluster em execução na porta 5000. Não consegue ver o que eu teria 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
fonte
Estamos em 2015 e estou tendo o mesmo problema. sempre que uma mensagem do websocket é descartada, esse erro aparece no log.
R3wt

Respostas:

19

O Nginx se conecta ao nodjs no loopback do IPv6 [:: 1]. O nodejs provavelmente está apenas ouvindo no IPv4.

Tente configurar

upstream api {
    server 127.0.0.1:5000;
}
...
Christopher Perrin
fonte
Para aqueles que estão confusos, mude localhostpara127.0.0.1
kouton
Alguma idéia se eu tenho 127.0.0.1 em vez de localhost e isso continua acontecendo?
Ken
3
Você deve verificar se o serviço está escutando. Tente sudo netstat -pantuverificar se o serviço está realmente escutando na porta.
Christopher Perrin
11
@ChristopherPerrin, obrigado por esse conselho. Ele me ajudou a perceber que um dos meus piscinas não estava ouvindo em sua porta, e ele acabou por ser, porque uma outra configuração da piscina era re-utilizar o mesmo nome para substituir sua configuração
Robbie Averill
@RobbieAverill É bom saber que essa resposta ainda é útil #
Christopher Perrin