10

Expressjs アプリを次のように実行して にcoffee server.coffee移動するとlocalhost:8080、すべて正常に動作します。

ただし、次の構成で nginx を使用して 8080 をリバース プロキシすると、次のようになります。

server {
    listen 0.0.0.0:80;
    server_name localhost;
    access_log /var/log/nginx/nodetest.log;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://node/;
      proxy_redirect off;
    }
}

upstream node {
    server 127.0.0.1:8080;
}

Chrome Dev コンソールに次のエラーが表示されます。

GET http://184.73.217.204/socket.io/xhr-polling//1300750540040 502 (Bad Gateway)

nginxの次のerror.log

2011/03/22 13:07:59 [error] 10269#0: *18 upstream prematurely closed connection while
reading response header from upstream, client: 168.229.58.68, server: localhost, 
request:     "GET /socket.io/xhr-polling//1300799281533 HTTP/1.1", upstream:     
"http://127.0.0.1:8080/socket.io/xhr-polling/1300799281533", host: "184.73.217.204",    
referrer: "http://184.73.217.204/"

任意のガイダンスをいただければ幸いです。

4

2 に答える 2

24

このパッチを試してみてください...

    -proxy_pass http://node/;
    +proxy_pass http://ノード;
于 2011-03-22T13:19:42.957 に答える
2

/を使用nginxforeverてVMS をセットアップするのは初めてです。私の目標は、ポート 3000 からではなく、デフォルトのポート 80 でアプリを提供できるようにプロキシを構成することでした。nodejsmeanjs

さまざまなオンラインの例からnginxサーバーブロックのスニペットをいじっていると、「502 Bad Gateway」エラーで壁にぶつかり始めました。試行錯誤の末、ようやくこの状態を解消することができました。

forever最終的には、最初は同等の使用方法のように見えnodeましたが、非常に異なる結果になりました。

502 Bad Gateway の結果:

ノード スクリプトへの絶対パスを使用してサーバーのルートから発行すると、このコマンドは 502 で失敗しました。

$ cd /
$ sudo forever start --spinSleepTime 10000 /var/www/mydomain.com/server.js

実際、nodeまったく実行されていない場合は、502 エラーも発生しました。

機能するもの:

機能した2つの方法はforever、ノードスクリプトへのパス(ファイル名のみ)を指定せずにプロジェクトのルートディレクトリから開始するか、サーバーのルートから再度sourceDirオプションを使用して開始することでした:

$ cd /var/www/mydomain.com
$ sudo forever start --spinSleepTime 10000 server.js

または:

$ cd /
$ sudo forever start --spinSleepTime 10000 --sourceDir /var/www/shotplot.info/ server.js

完全を期すために、追加のコンテキストを提供するのに役立つ場合に備えて、nginx サーバー ブロックも含めます。

upstream nodejs \{
        server 127.0.0.1:3000;
}
server {
        root /var/www/mydomain.com;
        server_name mydomain.com www.mydomain.com;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Host $host;
                proxy_pass http://nodejs;
                proxy_redirect off;
        }
}
于 2014-11-18T04:19:20.793 に答える