2017-10-07 181 views
-1

我是亞馬遜EC2的新手,所以請原諒我,如果我問一個愚蠢的問題。我使用「Amazon Linux AMI」創建了一個實例,並在其中安裝了NodeJS。亞馬遜EC2實例無法建立HTTP連接

我添加了從轉發端口80上的所有請求下面的IP表項爲3000

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000 

,我創建了一個Hello World腳本來測試此安裝。

var http = require("http"); 

http.createServer(function (request, response) { 
    // Send the HTTP header 
    // HTTP Status: 200 : OK 
    // Content Type: text/plain 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 

    // Send the response body as "Hello World" 
    response.end('Hello World\n'); 
}).listen(3000); 

// Console will print the message 
console.log('Server running at http://127.0.0.1:3000/'); 

這裏的問題是,當我嘗試ping到我的命令行例如,請求超時

ping ec2-52-26-59-26.us-west-2.compute.amazonaws.com 

PING ec2-52-26-59-26.us-west-2.compute.amazonaws.com (52.26.59.26): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2 

我怎樣才能解決這個問題?

+1

您是否檢查安全組3000端口是否打開? – Ashan

+0

我沒有添加任何安全規則到目前爲止,如果我需要添加?你能告訴我需要在那裏添加什麼嗎? – Unnikrishnan

+0

默認安全規則嚴重限制開放端口。請參閱http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html – Carey

回答

2

您需要更新EC2實例的安全組允許:

protocol: TCP, port: 3000, source: My IP

或者你可以,如果你想打開它的每個人都在互聯網上的源更改爲無處不在。

+0

它工作正常,我配置了cloudfront HTTPS訪問。當我使用cloudfront url randomtext.cloudfront.net進行訪問時顯示HTTPS,但是當我嘗試訪問使用我在「替代域名」中給出的域名時,它僅在HTTP連接中顯示。我如何使它成爲HTTPS? – Unnikrishnan

+0

看看這個:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html ...我建議你開始一個新的問題,如果你無法找到一個答案在此鏈接或以前的StackOverflow問題:) – mostafazh

+0

我無法讓它工作?我想在我的域名中使用HTTPS,我應該怎麼做? – Unnikrishnan