0

AWSに3つのインスタンスがあります。1つはフロントエンドサーバーであるnginx用で、2つはバックエンドnodejsインスタンスです。

これらのnode.jsインスタンスのアップストリームにnginxサーバーをセットアップしようとしています:

upstream node_servers {
        server private_ip:8124 weight=10 max_fails=3; // node server 1 private_ip:port
        server private_ip:8124 weight=10 max_fails=3; // node server 2 private_ip:port
}
server {
    listen  private_ip:80;     // nginx server private ip:port
    root /home/ubuntu/project/;
    server_name public_ip.eu-west-1.compute.amazonaws.com;  // nginx public DNS
    location / {

                try_files $uri $uri/ /index.html;
                proxy_pass http://node_servers/;

     }
}

私のノード1サーバーでは、ノード2サーバーインスタンスapp.jsコード:

app.listen(8124, "127.0.0.1");
console.log("listening on 8124");

nginxサーバーのパブリックドメイン名にアクセスしましたが、実際には何も起こりません。リクエストを送信するだけで永久に読み込まれます。

4

1 に答える 1

1

ノード コードでは、127.0.0.1 のループバック インターフェイスでリッスンしています (localhost からのリクエストのみ)。

app.listen(8124, "127.0.0.1");

特定のプライベート IP または 0.0.0.0 でリッスンする必要があります。

app.listen(8124, "0.0.0.0");
于 2012-11-22T18:30:35.860 に答える