2017-07-17 88 views
0

我正在使用角度cli设置角度应用程序。运行ng serve命令会在此地址<my_ec2_host_name>:4200处生成一个服务器。当我尝试访问浏览器中的页面时,它不起作用(连接超时错误)。我相信这是因为安全原因,所以我增加了以下规则,以我的安全组的EC2实例:无法访问角度应用程序的ec2实例上的端口

enter image description here

端口4200现在应该是可访问的,但我还是不能让网页载入。有人能想到如何让这个工作?

+0

检查NACL(如果你没有更新他们的话也没关系)。您是否已将公共(弹性)IP附加到EC2实例?检查实例中的iptables。 –

+0

服务器仅在本地主机上侦听吗?即什么'netstat -na | grep 4200'返回?如果它类似127.0.0.1:4200,那么你的服务器只在本地主机接口上监听,而不是在所有接口上监听。 – stdunbar

回答

0

您正在做的步骤对于通过EC2控制台中的安全组打开端口是正确的。确保您正在修改正确的安全组,并确保您的更改已保存。

您的容器可能有其他防火墙,因此您需要检查操作系统文档。例如,RHEL使用iptables作为进一步的安全措施:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-IPTables.html

+0

应该提到我正在运行Ubuntu操作系统。 – TK123

0

看起来正确。你确定你的服务器正在运行并且正在监听连接吗?

您应该ssh到该服务器,并验证该页面可以在本地加载。例如:

curl http://<YOUR HOST IP ADDRESS>:4200 
eg: curl http://54.164.10.123:4200 

您应该小心使用公共IP地址(例如:当您在EC2控制台中时:IPv4公用IP)。我遇到过问题,我有一台服务器监听一个IP地址(通常是本地主机),而不是公共IP地址。

也可能是一个问题:您的主机是否在某种VPC内?

+0

服务器正在运行,我可以访问'http:// <您的主机IP地址>',因为我也运行Apache。我也可以正确的SSH进入,这就是我运行'ng serve'命令的地方。 – TK123

+0

我不这么认为VPC,因为我甚至不知道那是哈哈。我只是使用默认设置。 – TK123

+0

你有Apache服务端口4200以及80? –

0

您可以设置在主机的选择是这样的:

ng serve -host 0.0.0.0 
相关问题