1

我在托管的 Apache 服务器上安装了 node.js。我放置在服务器上的简单服务器运行良好,但是当我访问该网站时,我看不到该网站。

我最初在我的本地机器上测试了它,它工作正常,但我需要在生产网站上使用它。我怎样才能做到这一点。

我的 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 服务器在 localhost 的 1337 端口上监听。");

然后我运行 node test.js 响应:TCP 服务器在 localhost 的端口 1337 上侦听。

然后我去 www.mywebsite.com:1337

哎呀!谷歌浏览器无法连接到 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

并且不绑定到本地主机,但仅在端口上:

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 回答