node.js的在Amazon EC2上使用Ubuntu 8.04安装在Amazon EC2上
问题描述:
所以我安装的node.js,并和已经运行node sayhello.js
这是该代码:node.js的在Amazon EC2上使用Ubuntu 8.04安装在Amazon EC2上
var sys = require('sys'),
http = require('http');
http.createServer(function (req, res) {
setTimeout(function() {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<br/><strong> Hello World!</strong>');
res.end();
sys.puts(sys.inspect(req, false));
}, 2000);
}).listen(8000);
sys.puts('Server running at http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/');
我看到
服务器运行在 http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/
正确显示在控制台中。
tutorial说:转到8000在浏览器中,你应该看到Hello World!
我去http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/(不是真正的地址),但它不加载(只是连接...)。这个例子使用localhost,是做公共领域不正确还是一些这样的?
谢谢。
答
在与EC2实例关联的安全组中,确保您的端口8000对您的IP或公众开放。
答
您需要在安全组中打开端口8000。
如果您已经安装了EC2的命令行工具,尝试运行:
$ ec2-authorize default -p 8000
这是假设你正在使用的默认安全组。如果不是,则将默认更改为您的安全组的名称。
如果你只是使用Web界面请按照下列步骤操作:
- 登录到AWS控制台
- 选择亚马逊EC2在菜单顶栏
- 点击安全组在左边
- 单击您分配给您的EC2实例的安全组(可能只是默认值)
- 在底部的窗格中,单击入境标签
- 套装端口范围: 8000并保留其他两个输入,因为它们是
- 单击添加规则
答
检查以下内容:
- 那您允许从所有ips访问安全组中的端口8000
- 您修改了正确的安全组(例如quicklaunch-1)和不是说,quicklaunch-2。我已经编辑了错误的次数,而不是我想要承认的次数。
- 您已在Linux防火墙上打开端口8000
- 您的服务器实际上正在运行(您应该在命令行中看到“在端口8000上侦听”)。
这里是如何建立在Amazon EC2上一个Node.js的web服务器的教程:http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2
这是一个有点比你在做什么(因为它使用IP转发80到更复杂8080),但关于打开Linux防火墙的部分是相同的。