2017-07-17 66 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