1

ホストされているApacheサーバーにnode.jsをインストールしました。サーバーに配置した単純なサーバーは正常に動作しますが、WebサイトにアクセスするとWebサイトが表示されません。

私は最初にこれをローカルマシンでテストしましたが、正常に動作しますが、本番Webサイトで必要です。これどうやってするの。

私のNode.jsコード

[code]
// Load the net module to create a tcp server.
var net = require('net');

// Setup a tcp server
var server = net.createServer(function (socket) {

  // Every time someone connects, tell them hello and then close the connection.
  socket.addListener("connect", function () {
    sys.puts("Connection from " + socket.remoteAddress);
    socket.end("Hello World\n");
  });

});

// Fire up the server bound to port 7000 on localhost
server.listen(1337, "localhost");
[/code]

//わかりやすいメッセージをターミナルに配置しますconsole.log( "TCPサーバーはローカルホストのポート1337でリッスンしています。");

次に、ノードtest.jsを実行します。応答:ローカルホストのポート1337でリッスンしているTCPサーバー。

次に、www.mywebsite.com:1337にアクセスします

おっと!GoogleChromeはwww.mywebsite.com:1337に接続できませんでした

そこで、実際のIP server.listen(1337、 "xx.xx.xx.xx");を使用してみました。

そして、URL server.listen(1337、 "http://mywebsite.com"); //これは実際にサーバーをすぐに壊しました

では、どうすればこれを行うことができますか?

4

1 に答える 1

0

着信トラフィックを許可するには、ファイアウォール ルールが必要です。

iptables -A INPUT -p tcp --dport 1337 -j ACCEPT

localhost にはバインドしませんが、ポートのみにバインドします。

server.listen(1337/*, "localhost"*/);

http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback

編集:これはホストをコメントアウトするため、サーバーはすべてのアドレスでリッスンします(これは次と同じです:)

server.listen(1337);

それでも問題が発生する場合は、ファイアウォールの問題である可能性が最も高くなります。

于 2013-01-02T07:04:26.837 に答える