【问题标题】:node.js script works off command line but not from browser?node.js 脚本可以在命令行下工作,但不能在浏览器中工作?
【发布时间】:2017-03-31 12:56:03
【问题描述】:

我启动了运行 ubuntu 12.04 的亚马逊 ec2 实例

然后我按照说明从这里 http://howtonode.org/how-to-install-nodejs 安装 node.js

sudo apt-get install g++ curl libssl-dev apache2-utils
sudo apt-get install git-core

git clone git://github.com/ry/node.git
cd node
./configure
make
sudo make install

然后我使用示例代码制作hello.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

然后我跑了hello.js

/var/www$ node hello.js
Server running at http://127.0.0.1:8124/

但是,当我尝试使用 http://ec2-***.compute-1.amazonaws.com:8124/ 从 url 访问它时,我的浏览器会出现错误页面。

关于如何让它显示在浏览器中的任何建议?

编辑 改了上面这行代码后还是遇到这个问题

}).listen(8124, "127.0.0.1");

到这里

}).listen(8124);

【问题讨论】:

    标签: javascript linux node.js ubuntu amazon-ec2


    【解决方案1】:

    127.0.0.1 是环回地址。只有主机可以访问它。如果您想监听任何可用的 IP,请不要指定该参数。否则,请指定您要监听的真实 IP。

    【讨论】:

    • 我将这行代码 }).listen(8124, "127.0.0.1"); 更改为 }).listen(8124); 但它仍然没有加载。我也将 tcp 端口 8124 添加到安全组,但我仍然面临同样的问题。
    • user784637,SSH 进入你的盒子,然后运行telnet 127.0.0.1 8124。连接是否有效? (除非您提出有效请求,否则您不会得到输出,但我更感兴趣的是连接是否正常工作。)然后,在您的办公桌上进行相同的测试。
    • Arg... 我得到以下输出 /var/www# telnet 127.0.0.1 8124 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused 关于为什么我无法建立连接的任何想法?我是否需要将流量从 8124 转发到端口 1024 的流量)
    • 你试过不同的端口吗?比如80端口?服务器没有在监听,或者有某种防火墙阻止了你。
    • 如果我在 AWS EC2 中没有错,我们需要添加可以访问安全组中某些端口的 IP,你这样做了吗?我不认为 8124 端口对所有人开放。
    【解决方案2】:

    我也有同样的问题,卸载Skype对我有用,您还可以搜索一些强制Skype移动到其他端口的设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 2011-05-11
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多