node.js在Amazon EC2上安装

时间:2010-07-08 17:53:57

标签: node.js amazon-ec2

所以我使用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>&nbsp;&nbsp;&nbsp;&nbsp;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,是否正在进行公共域不正确或某些此类?

感谢。

3 个答案:

答案 0 :(得分:6)

您需要在安全组中打开端口8000。

如果您已安装EC2命令行工具,请尝试运行:

$ ec2-authorize default -p 8000

这假设您使用的是默认安全组。如果没有,请将默认更改为您的安全组名称。

如果您只是使用网络界面,请按以下步骤操作:

  1. 登录AWS控制台
  2. 在顶栏中选择Amazon EC2
  3. 点击左侧菜单中的安全组
  4. 单击您分配给EC2实例的安全组(可能只是默认值)
  5. 在底部窗格中,单击入站选项卡
  6. 端口范围:设置为8000并保留其他两个输入
  7. 点击添加规则

答案 1 :(得分:4)

在与EC2实例关联的安全组中,请确保您的IP或公众开放了端口8000.

答案 2 :(得分:0)

检查以下内容:

  1. 您允许从所有ips访问安全组中的端口8000
  2. 您已经修改了CORRECT安全组(例如,quicklaunch-1)而不是,例如quicklaunch-2。我编辑错误的次数比我承认的要多。
  3. 您已在Linux防火墙上打开了端口8000
  4. 您的服务器实际上正在运行(您应该在命令行中看到“在端口8000上侦听”)。
  5. 以下是有关如何在Amazon EC2上设置Node.js Web服务器的教程:http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

    它比你正在做的更复杂(因为它使用从80到8080的ip转发)但是关于打开Linux防火墙的部分是相同的。