作为部署幽灵博客平台,我正在检查是否可以在装有 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
您需要在地址中提供端口吗?
答案2
我改变了 EC2 安全组的规则default
,我天真地以为这些规则适用于我的所有实例。
我的实例实际上是安全组的成员launch-wizard-3
。一旦我在那里更改权限,node.js 就可以完美运行。