【问题标题】:Running node.js on a port other than port 80在端口 80 以外的端口上运行 node.js
【发布时间】:2012-02-12 20:01:34
【问题描述】:

我的 ubuntu 服务器上运行着一个 apache 网络服务器。最近,我在尝试学习 JavaScript,偶然发现了 node.js。我想创建一些 web 应用程序多人游戏,我了解到 node.js 可以派上用场。我在配置方面遇到了一些问题。我将如何在同一台机器上同时运行 apache 服务器和 node.js?如果 node.js 上的应用程序位于不同的端口并且必须通过键入 websitename:portNumber 来访问,我不介意。我不太关心性能优缺点,我只是想借此机会尝试一下 JavaScript 和 node.js。有没有需要修改的文件?

这是我在服务器上运行的脚本的代码(目前仅用于试用目的):

var http = require('http');

 http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
  }).listen(1337);

我启动了服务器(节点 fileName.js)。但是,当我尝试使用网络上的另一台客户端计算机访问它时,它似乎无法正常工作,因为该页面似乎不存在。

当我访问 1337 端口上的服务器时,我可以通过什么程序将 Hello World 输出到我的浏览器?

【问题讨论】:

  • 确保端口 1337 未被任何类型的防火墙(例如,Amazon 的 EC2 安全组)阻止,并且如果您在路由器后面,该端口将被正确转发。
  • 您的示例正在运行,似乎您要么阻塞了端口 1337,要么在另一台计算机上输入了错误的 ip。

标签: javascript apache node.js ubuntu-server


【解决方案1】:

尝试这样做:

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "your-adapter-ip"); // don't forget adapter IP

然后从网络将您的浏览器指向http://your-adapter-ip:1337
确保在该端口上打开防火墙。

【讨论】:

  • 或 '0.0.0.0' 代替 IP 来监听任何接口
【解决方案2】:

您应该能够从另一台客户端计算机浏览到http://your_ubuntu_server_ip:1337

您可以从另一台计算机访问 apache 网络服务器吗?如果是这样,您可以停止 apache,修改您的代码以使用端口 80,然后重试。

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2011-08-31
    • 2013-10-02
    • 2012-02-06
    • 2013-01-27
    • 2015-09-28
    • 2011-06-16
    • 2014-08-16
    • 2011-02-19
    相关资源
    最近更新 更多