2016-04-21 117 views
5

我通過此link在Google Cloud Engine(GCE)上安裝了MEAN堆棧。如何通過瀏覽器訪問Google Cloud Engine實例的IP地址

所以引擎創建我的實例成功,它看起來是這樣的: instance's info on GCE

我創建了一個新的防火牆規則來接受任何傳入的請求(實際上做我需要做的這個默認允許HTTP的有相同的規則是嗎?): enter image description here

但是,當我嘗試使用Chrome訪問IP時,出現錯誤。即使當我更改瀏覽器時,錯誤仍然存​​在,例如IE或Firefox:

enter image description here

我已經證實,我可以ping地址: enter image description here

我甚至試圖將一個域名指定的實例,但它仍然不能正常工作: enter image description here

我可以知道我在做什麼錯嗎?

希望有任何建議!提前致謝!

+0

是你能解決這個您的情況下,你可以打開它?如果是這樣,請發佈答案,以便社區可以受益。以下是一些提示,以便排除其他問題:a)SSH在服務器中,並檢查它是否在該端口上偵聽。即「netstat -tulpn」。 b)驗證VM阻塞連接(即iptables)中沒有防火牆。 c)在Google防火牆中添加規則(「default-allow-http」可用於端口80,但服務器仍需標記)。 – Carlos

回答

-1

錯誤是CONNECTION_RESET。我的猜測是MEAN堆棧未在端口80上偵聽。

+0

如何檢查MEAN堆棧是否在端口80偵聽?我如何指導它? – jasonC

+0

一個簡單的方法是將ssh放到虛擬機上,然後「curl http://127.0.0.1:80」。 – Dagang

0

更明確 - 防火牆的工作僅僅是攔截不允許的傳入連接並將其靜默放置。

在這種情況下,您: (a)請參閱來自VM公共IP地址的ping響應,表明ICMP未被防火牆阻止。 (b)查看VM發送的TCP RST數據包,以響應瀏覽器在嘗試連接到VM上的TCP服務器時發送的TCP SYN數據包。這表示發送到TCP端口80的數據包也按預期通過了防火牆。

這裏缺少的是虛擬機上的服務器應用程序,它監聽端口80上的連接,接收HTTP請求並作出響應。你可以嘗試運行Apache(或者Nginx,它的設置更簡單)。

在回答您的其他問題 - 你不需要第二TCP:80防火牆規則 - 但如果你想默認的HTTP規則,以允許數據包你的虛擬機,你將需要一個標籤來你的虛擬機標記爲「http-server」。

+0

實際上,爲了測試防火牆是否正確阻止與虛擬機上任何其他端口的TCP連接,請嘗試在瀏覽器中輸入「http://104.154.39.199:8080」。在這種情況下(除非將防火牆條目修改爲允許端口8080),否則應該連接超時。如果你的_add_端口8080(沒有監聽服務器),你會得到一個RST。 GCE與AppEngine有點不同,因爲Web服務器不會自動在虛擬機上設置 - 但它更靈活,因爲您可以完全控制運行的內容。但是,Nginx的安裝和設置非常簡單 - 只需一試! – Kevin

1

出於安全原因,MEAN堆棧應用程序僅在本地主機地址上使用Express在端口3000(默認地址)上運行。爲了促使應用程序在互聯網上可見(在端口80上),只需在apache(或nginx或...)上創建一個代理反向子句。

須藤納米/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf

添加此聲明是這樣的: 的ProxyPass http://localhost:3000 ProxyPassReverse http://localhost:3000

須藤的/ opt/bitnami/ctlscript。SH重啓Apache

如果應用程序是lauched使用 http://address_of_VMInstance/yourapp

相關問題