web-dev-qa-db-ja.com

NodeJSアプリへのNGINXプロキシパス:502エラーを返す

127.0.0.1:3000で公開されているNodeJSアプリのフロントエンドとしてNGINXをセットアップしようとしていますが、この502エラーを解決できません。 NGINXはhttp://55.55.55.5/またはhttp://dev.exampleでローカルに到達可能です

dev.example(file in:/ etc/nginx/sites-available and symlinked to sites-enabled)

upstream up_dev.example {
    server 127.0.0.1:3000;
}

server {
    listen 0.0.0.0:80;
    server_name dev.example example;
    access_log /var/log/nginx/dev.example.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://up_dev.example/;
      proxy_redirect off;
    }
 }

error.log

2014/09/17 19:38:26 [エラー] 1679#0:* 1アップストリームへの接続中にconnect()が失敗しました(111:接続が拒否されました)、クライアント:55.55.55.1、サーバー:、リクエスト: "GET/HTTP/1.1 "、アップストリーム:$

3
Jack

httpd_can_network_connectがデフォルトでオフになっているため、接続が確立されないのはSELinuxである可能性もあります。

getsebool httpd_can_network_connect

これがオンになっているかどうかを確認します。そうでない場合は、実行してオンにします

setsebool -P httpd_can_network_connect on

-Pは永続的な変更を意味するため、再起動後も新しいブール値が引き続き有効です。

8
josephting

接続が拒否されたということは、サーバーのポート3000をリッスンしているソフトウェアがないことを意味します。 Node.JSが正しく実行されていること、およびNode.JSがポート3000をリッスンしていることを確認する必要があります。

3
Tero Kilkanen
- proxy_pass http://up_dev.example/
+ proxy_pass http://up_dev.example

それを試してみてください

0
WUSO01