Node.js Can';t连接到Amazon EC2上的节点服务器

Node.js Can';t连接到Amazon EC2上的节点服务器,node.js,linux,amazon-web-services,ubuntu,amazon-ec2,Node.js,Linux,Amazon Web Services,Ubuntu,Amazon Ec2,这是app.js,代码太长了,所以我只显示这段代码,其他代码没有问题,我假设这是网络问题 app.js app.listen(8080, 'localhost', function () { console.log('Express started on http://localhost:' + 8080 + '; press Ctrl-C to terminate.'); }); 当我运行lsof-I:8080时,我没有得到任何响应。但当我在服务器上运行curl localhost:

这是app.js,代码太长了,所以我只显示这段代码,其他代码没有问题,我假设这是网络问题

app.js

app.listen(8080, 'localhost', function () {
    console.log('Express started on http://localhost:' + 8080 + '; press Ctrl-C to terminate.');
});
当我运行lsof-I:8080时,我没有得到任何响应。但当我在服务器上运行
curl localhost:8080
时,确实会得到响应

我认为安全小组没有任何问题。我允许任何ip访问该实例,如下所示

下面是我测试
public ip
localhost

ubuntu@:ip~/$ curl -v 18.217.107.76:8080
* Rebuilt URL to: 18.217.107.76:8080/
*   Trying 18.217.107.76...
* connect to 18.217.107.76 port 8080 failed: Connection refused
* Failed to connect to 18.217.107.76 port 8080: Connection refused
* Closing connection 0
curl: (7) Failed to connect to 18.217.107.76 port 8080: Connection refused
ubuntu@ip:~/$ curl -v localhost:8080
I get response here!

我把代码从

app.listen(8080, 'localhost', function () {
    console.log('Express started on http://localhost:' + 8080 + '; press Ctrl-C to terminate.');
});


现在它工作了

我从

app.listen(8080, 'localhost', function () {
    console.log('Express started on http://localhost:' + 8080 + '; press Ctrl-C to terminate.');
});


现在它工作了

这就是我工作的原因

在安全组中,您添加了默认情况下在端口80上侦听的规则HTTP

因此,基本上,如果您已将节点服务器配置为在端口号80以外的端口上运行(我犯了这个错误),并尝试在浏览器上访问公共DNS(EC2公共DNS可在实例描述中找到),则可能会出现连接拒绝错误,因此您可以将配置中的端口值更改为80

您的config.env将如下所示

PORT=80
在server.js中,您可以编写

const PORT = process.env.PORT;
try {
    app.listen(PORT, () => { console.log(`server running at port ${PORT}`) })
} catch (error) {
    console.log(error)
}

这就是我的工作

在安全组中,您添加了默认情况下在端口80上侦听的规则HTTP

因此,基本上,如果您已将节点服务器配置为在端口号80以外的端口上运行(我犯了这个错误),并尝试在浏览器上访问公共DNS(EC2公共DNS可在实例描述中找到),则可能会出现连接拒绝错误,因此您可以将配置中的端口值更改为80

您的config.env将如下所示

PORT=80
在server.js中,您可以编写

const PORT = process.env.PORT;
try {
    app.listen(PORT, () => { console.log(`server running at port ${PORT}`) })
} catch (error) {
    console.log(error)
}