亚马逊 EC2 上的 node.js hello world 服务器

亚马逊 EC2 上的 node.js hello world 服务器

作为部署幽灵博客平台,我正在检查是否可以在装有 Ubuntu 13.04 的 Amazon EC2 实例上部署 node.js

Ghost Github 页面甚至提供了如何部署到EC2而验证node是很重要的一步。

我把节点服务器放进去/var/www/index.js并运行node index.js,所以它应该在端口 8080 上监听

require("http").createServer(function(request, response){
  response.writeHeader(200, {"Content-Type": "text/plain"});
  response.write("Hello World!");
  response.end();
}).listen(8080);

我无法连接到:http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com/使用 Chrome

此时我回过头来,放入了以下入站 TCP 规则:

22 (SSH)    0.0.0.0/0   Delete
80 (HTTP)   0.0.0.0/0   Delete
443 (HTTPS) 0.0.0.0/0   Delete
8080 (HTTP*)0.0.0.0/0   Delete

好消息尽管curl 127.0.0.1给出了:

<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.4.5</center>
</body>
</html>

curl 127.0.0.1:8080给出Hello World!

为什么我无法从家里的电脑连接到节点?

答案1

您需要在地址中提供端口吗?

http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:8080

答案2

我改变了 EC2 安全组的规则default,我天真地以为这些规则适用于我的所有实例。

我的实例实际上是安全组的成员launch-wizard-3。一旦我在那里更改权限,node.js 就可以完美运行。

相关内容