2016-05-17 34 views
0
var express = require('express'); 
var app = express(); 

app.listen(3000, function() { 
console.log('Example app listening on port 3000!'); 
}); 

app.get('/getCode', function (req, res) { 

res.send("hai"); 
}) 

サーバーは正常に起動しますが、ip:3000/getCodeを呼び出すと応答はありません。Node.jsサーバーはローカルで正常に動作しますが、サーバー上では正常に動作しません。

私はポート3000を開いて、どこでも、0.0.0.0へのカスタムIPからのAWS EC2 Ubuntuのサーバー

inbound rules in aws

+0

IPにpingを実行しますか?その到達可能かどうか? – Subburaj

+1

'curl 127.0.0.1:3000/getCode'はシェルの中で動作しましたか? – Sridhar

+0

最初に確認するのは、サーバー自体のフォームに接続できるかどうかです。リンクをインストールするか、コンソールWebブラウザを起動します(OSに応じてapt-getやyumなどのawsリポジトリから入手できます)。その後、リンクやelinksを使用してaws自体からサーバーを参照してみてください。これが動作すれば、あなたのawsインスタンスとあなたのPCの間の何かがポート3000をブロックしています。awsのセキュリティ設定とローカルファイアウォールの両方をチェックしてください(あれば、お使いのPCとルーターの両方をチェックしてください) – slebetman

答えて

0

チェンジ・ソースの午前います。これはあなたがあなたがアクセスしたいIPアドレスにカスタムIPアドレスにそれを変更することができることを確認したら、あなたが任意のIPアドレスからそのAPIにアクセスできるようになります。

+0

まだ完了していない応答 – ArUn

0

このようなポートを設定してみてください:

var port = process.env.PORT || 3000; 

app.listen(port, function() { 
console.log('Example app listening on port:' + port); 
}); 

説明:(Herokuの、Nodejitsu、およびAWSのような)別のサービスでアプリケーションをホストする場合、あなたのホストが倍に独立して、あなたのためprocess.env.PORT変数を設定することができ。

+0

があります。ここではec2のようにサーバを完全に制御でき、アプリケーションで言及したポートでアプリケーションを開始することがあります。 – AJS

+0

AWS Elastic Beanstalkでもそうです。ポートをハードコーディングするのではなく、より安全に定義することができます。後のように、環境変数 '' $ export PORT = 4000''' – Nivesh

+1

を変更するだけでポートを変更することができますが、それは彼が直面している問題ではありませんが、ファイアウォールで間違いを犯したようです。 – AJS

関連する問題