我有一个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的入站规则。
答案 0 :(得分:1)
您正在侦听端口8080但是具有端口80的入站规则。在AWS EC2控制台上为端口8080添加新规则。
另外,正如建议的那样,只需app.listen(8080)
如果您希望服务器在端口80上运行,请执行app.listen(80)
。但您必须以超级用户身份运行该过程。所以sudo node app.js
答案 1 :(得分:0)
感谢您的努力,实际上,我解决了这个问题。
我有两个实例,它们的顺序不同于我的安全组对这些实例的顺序...我在端口80上为另一个安全组(正确的安全组)设置了规则,它现在可以正常工作。 / p>