nginx:アップストリームへの接続中にconnect()が失敗しました(111:接続が拒否されました)


16

エラーログには次のエラーメッセージが表示されます。すべてのリソースにアクセスできますが、エラーがフラグを立てている理由がわかりません。

エラー:

[エラー] 13368#0:アップストリームへの接続中に* 449 connect()failed(111:Connection refused)、クライアント:xxxx、サーバー:myserver.com、リクエスト: "GET / stories / mine HTTP / 1.1"、アップストリーム: " http:// [:: 1]:5000 / stories / mine "、ホスト:" myserver.com "

私のNginx設定

node.jsポート5000で実行されているクラスターに接続を渡します。見逃していたものが表示されませんか?

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

それは2015年であり、私はこの同じ問題を抱えています。websocketメッセージがドロップされるたびに、このエラーがログに表示されます。
r3wt

回答:


19

Nginxは、IPv6ループバック[:: 1]でnodjsに接続します。nodejsはおそらくIPv4をリッスンしているだけです。

設定してみてください

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

混乱している人は、次のように変更localhostしてください127.0.0.1
kouton

localhostの代わりに127.0.0.1があり、これが引き続き発生する場合のアイデアはありますか?
ケン

3
サービスがリッスンしているかどうかを確認する必要があります。sudo netstat -pantuサービスが実際にポートでリッスンしているかどうか試してみてください。
クリストファーペリン

1
@ChristopherPerrinそのアドバイスをありがとう。別のプール構成が同じ名前を再使用していたので、その設定を上書きするので、それは私のプールの一つは、そのポートで待機していなかったことを実現するために私を助け、それがあることが判明
ロビーエーヴリル

@RobbieAverillこの答えはまだ役立つと聞いてうれしいです
クリストファー・ペリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.