来自远程浏览器的AWS Ubuntu实例上的节点错误

时间:2014-03-15 06:31:31

标签: node.js ubuntu amazon-web-services express

我有一个Amazon EC2实例,Ubuntu。这是我的节点示例:

var express = require('express');
var app = express();
app.get('/', function(req, res){
  res.send('Hello Express');
});
app.listen(8080, 'http://ec2-xx-xx-xx-xx.us-west-x.compute.amazonaws.com');

xx是我的实际地址。

我在SSH中启动节点,一切都很好。

我在笔记本电脑上访问浏览器http://ec2-xx-xx-xx-xx.us-west-x.compute.amazonaws.com 节点错误输出(访问同一域:8080错误):

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: getaddrinfo ENOTFOUND
    at errnoException (dns.js:37:11)
    at Object.onanswer [as oncomplete] (dns.js:124:16)

我在此实例上的80安装上有HTTP的入站规则。

2 个答案:

答案 0 :(得分:1)

您正在侦听端口8080但是具有端口80的入站规则。在AWS EC2控制台上为端口8080添加新规则。

另外,正如建议的那样,只需app.listen(8080)

如果您希望服务器在端口80上运行,请执行app.listen(80)。但您必须以超级用户身份运行该过程。所以sudo node app.js

答案 1 :(得分:0)

感谢您的努力,实际上,我解决了这个问题。

我有两个实例,它们的顺序不同于我的安全组对这些实例的顺序...我在端口80上为另一个安全组(正确的安全组)设置了规则,它现在可以正常工作。 / p>