Node.js 角度-不能在EC2上使用
我在EC2(RHEL 7)上用Node.js 角度-不能在EC2上使用,node.js,angular,amazon-ec2,Node.js,Angular,Amazon Ec2,我在EC2(RHEL 7)上用ng new app1创建了Angular应用程序,并尝试使用以下工具提供: ng new app1 cd app1 ng serve --port=4200 当我转到url:IP:4200-出现以下错误: Exception: tcp_error Exception details: A communication error occurred: "Connection refused" 但是,当我在同一台服务器和同一个端口上尝试使用NodeJ时,我可以在
ng new app1
创建了Angular应用程序,并尝试使用以下工具提供:
ng new app1
cd app1
ng serve --port=4200
当我转到url:IP:4200
-出现以下错误:
Exception: tcp_error
Exception details: A communication error occurred: "Connection refused"
但是,当我在同一台服务器和同一个端口上尝试使用NodeJ时,我可以在相同的IP:4200
上看到结果。NodeJS代码是:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World 3!');
});
app.listen(4200, function () {
console.log('Example app listening on port 4500!');
});
Angular和EC2有什么问题?我可以在本地计算机上运行完全相同的Angular代码,当转到
localhost:4200
-我可以看到结果(但不能从EC2IP:4200
)。根据netstat
的输出,Angular的服务器被配置为只侦听以IP127.0.1
为目标的连接
但来自外部的连接将针对不同的IP,所以您需要使用--host
参数传递另一个IP。或者,为了方便起见,使用IP0.0.0
,这意味着“此主机响应的每个IP”
因此,该命令应类似于:
ng serve --port=4200 --host=0.0.0.0
根据
netstat
的输出,Angular的服务器配置为仅侦听以ip127.0.0.1
为目标的连接
但来自外部的连接将针对不同的IP,所以您需要使用--host
参数传递另一个IP。或者,为了方便起见,使用IP0.0.0
,这意味着“此主机响应的每个IP”
因此,该命令应类似于:
ng serve --port=4200 --host=0.0.0.0
查找问题。在这两种情况下,
netstat-ntlp
是否都显示在端口4200上运行的应用程序?(例如,如果一个监听0.0.0.0
,而另一个监听127.0.0.1
,也要注意IP)。您在哪个程序中看到了您发布的异常消息?显示错误的是Angular(连接被拒绝
),当我为Angular(不工作)运行netstat-ntlp时,本地地址显示为127.0.0.1:4200
,而节点显示为::4200
。下一步该怎么办?您是否配置了防火墙入站规则?这是一种生产模式吗?netstat-ntlp
的可能副本在这两种情况下都显示了在端口4200上运行的应用程序吗?(例如,如果一个监听0.0.0.0
,而另一个监听127.0.0.1
,也要注意IP)。您在哪个程序中看到了您发布的异常消息?显示错误的是Angular(连接被拒绝
),当我为Angular(不工作)运行netstat-ntlp时,本地地址显示为127.0.0.1:4200
,而节点显示为::4200
。下一步该怎么办?您是否配置了防火墙入站规则?这是一种生产模式吗?可能是