所以我使用ubuntu 8.04在amazon ec2上安装node.js,并运行node sayhello.js
,这是代码:
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,是否正在进行公共域不正确或某些此类?
感谢。
答案 0 :(得分:6)
您需要在安全组中打开端口8000。
如果您已安装EC2命令行工具,请尝试运行:
$ ec2-authorize default -p 8000
这假设您使用的是默认安全组。如果没有,请将默认更改为您的安全组名称。
如果您只是使用网络界面,请按以下步骤操作:
答案 1 :(得分:4)
在与EC2实例关联的安全组中,请确保您的IP或公众开放了端口8000.
答案 2 :(得分:0)
检查以下内容:
以下是有关如何在Amazon EC2上设置Node.js Web服务器的教程:http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2
它比你正在做的更复杂(因为它使用从80到8080的ip转发)但是关于打开Linux防火墙的部分是相同的。