2013-04-16 87 views
0

我在EC2中設置了2個實例。一個運行nginx,並且與彈性IP地址有關聯,所以它可以公開訪問。AWS EC2上的前端應用服務器

其他沒有一個Web服務器,但是對8080端口

都運行一個RESTful服務器屬於一個安全組本規則:

Ports Protocol Source MongoDB-2-2-2-AutogenByAWSMP- 
22 tcp 0.0.0.0/0 
80 tcp 0.0.0.0/0 
8080 tcp 0.0.0.0/0 

如果我的理解是正確的,然後端口8080應該打開。

如果我ssh到我的網箱(nginx的運行),我試圖測試訪問我的REST風格的服務器上的其他實例:8080,所以我嘗試:

curl http://10.151.87.76:8080/1/tlc/ping 
curl http://ip-10-151-87-76:8080/1/tlc/ping 
curl http://ip-10-151-87-76.ec2.internal:8080/1/tlc/ping 

所有這些都給我「無法連接到主機」錯誤。

如果我直接登錄到RESTful框並執行以下操作,它將起作用。

所以我知道我的服務是健康的。

任何想法,爲什麼我不能從其他實例看到端口8080讚賞。

回答

0

確保您的無頭服務公開可用< <所以這就是原因。 REST API使用什麼Web服務器?如果是Apache,請確保配置爲Listen 8080,而不是Listen 1.2.3.4:8080。如果它是獨立的應用程序,請確保它可以偵聽所有接口 - 某些客戶端默認會偵聽本地主機。 - hudolejev 54分鐘前

This!在我的代碼中深埋(深)是連接到「本地主機」的服務器的一部分。改變了這一點,以關閉主機名,一切都很好!快樂。

1

確保實例處於相同的可用區域。如果沒有,您可能需要通過公共DNS名稱訪問實例(類似ec2-XXX-XX-XXX-XXX.YYY.amazonaws.com)。

確保10.151.87.76是正確的IP。請注意,在實例停止並重新啓動後,這可能會更改。

確保你的無頭服務是公開可用的 - 它可能僅監聽本地主機:8080,但應該聽取0.0.0.0:8080。從其他實例嘗試nmap 10.151.87.76 -p 8080,它應該將8080列爲開放端口。

+0

好的...檢查。 – Greg

+0

相同的可用性區:是 IP檢查:這是正確的 NMAP這樣說: 爲IP-10-151-87-76.ec2.internal(10.151.87.76) 主機已啓動的Nmap掃描報告(0.00053 s延遲)。 端口狀態服務 8080/tcp關閉http代理 因此即使安全策略表示它應該打開,它仍然在網絡框上關閉。我如何克服這一點? – Greg

+1

>確保你的無頭服務是公開的,所以這就是原因。 REST API使用什麼Web服務器?如果是Apache,請確保config配置爲「Listen 8080」,而不是「Listen 1.2.3.4:8080」。如果它是獨立的應用程序,請確保它可以偵聽所有接口 - 某些客戶端默認會偵聽本地主機。 – hudolejev

相關問題