8

Azure に Ubuntu 仮想マシンがあります。Azure 管理ポータルにエンドポイントを追加しました。

NAME   PROTOCOL   PUBLIC PORT   PRIVATE PORT  LOAD-BALANCED SET
---------------------------------------------------------------
HTTP   TCP        80            80            -

そして、私はそれを聞いてみました:

var http = require('http');

var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello World\n");
});

server.listen(80);

ssh して curl すると動作します:

$ curl localhost:80
Hello World

しかし、でアクセスしようとするとsubdomain.cloudapp.net、何も返されません。また、パブリック IP アドレスでアクセスしても何も返されません。

外部からノード アプリケーションにアクセスするには、どのポートとアドレスでノード アプリケーションをリッスンする必要がありますか?

VM にアクセスできるようにするには、別の Azure サービスが必要ですか?

ファイアウォールに問題がある場合、パブリック アクセスを有効にするにはどうすればよいですか?


編集:

ファイアウォールがあるかどうかを確認しましたが、ありません:

$ sudo ufw status
[out :: subdomain.cloudapp.net] Status: inactive

編集2:

別の ubuntu vm をプロビジョニングしましたが、それでも機能しません。iptables を再起動しようとしましたが、サービスが不明でした:

$ sudo service iptables restart
iptables: unrecognized service

iptables は次のとおりです。

$ sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http


Chain FORWARD (policy ACCEPT)
target     prot opt source               destination


Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
4

4 に答える 4

3

127.0.0.1、またはローカル ホストでリッスンしている可能性があります。をリッスンする必要があり0.0.0.0ます。これを修正するには、交換してください

server.listen(80);

server.listen(80, "0.0.0.0")

明確にするために、0.0.0.0は実際のアドレスではなく、すべてのアドレス、127.0.0.1 およびその他の IP を意味します。

于 2013-11-10T19:46:20.930 に答える
2

Azure では、環境変数 process.env.PORT を使用してポートを設定する必要があります。localhost で 80 を使用したい場合は、ここで推奨されているように、この方法でコードに設定する良い方法です。

server.listen(process.env.PORT || 80);

ただし、Azure で VM を実行する場合は、Windows ファイアウォールが正しく設定されていることを確認してください。

于 2013-11-10T10:15:05.880 に答える
1

外部からsshトンネリングを使用してubuntu VMにアクセスできるため、ポートがポート80でのリモート接続を許可していないと思います。この答えを試してください。Apache関連ですが、この2つの問題は似ていて、実際には同じです。これを試してみてください。

それまでの間、頑張ってください。指を交差 :p

于 2013-11-16T18:30:08.013 に答える