Amazon EC2实例无法建立HTTP连接

时间:2017-10-07 08:17:11

标签: amazon-web-services amazon-ec2

我是亚马逊EC2的新手,所以如果我问一个愚蠢的问题,请原谅。我使用“Amazon Linux AMI”创建了一个实例,并在其中安装了NodeJS。

我添加了以下IP表条目,用于将所有请求从端口80转发到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 个答案:

答案 0 :(得分:2)

您需要更新EC2实例的安全组以允许:

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

如果您想将其打开到互联网上的每个人,您可以将源更改为Everywhere。