2014-02-14 158 views
4

我正在尝试在亚马逊微型实例上运行nodejs服务器过去的3-4天,但没有成功。无法获取nodejs在亚马逊ec2实例上工作

我跟着这么多的教程,我不能让服务器工作(所以当它在浏览器中访问或curl在PowerShell中,看到简单的Hello世界)。

下面是最近3个教程我已经试过:

http://iconof.com/blog/how-to-install-setup-node-js-on-amazon-aws-ec2-complete-guide/ http://techprd.com/setup-node-js-web-server-on-amazon-ec2/ http://devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html

我试过的Ubuntu/Linux的亚马逊。

我也跟着http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html只是为了看看一般过程是如何工作的,它工作正常。

我得到了我做这样的事情:sudo node filename.js 和服务器运行。

但是,当我尝试访问或卷曲它。它不起作用。当我平了它它很好。

在亚马逊我设置的安全组,基本上允许像这样的一切:

enter image description here

在linux

其自我我也跟着:https://help.ubuntu.com/community/IptablesHowTo?action=show&redirect=Iptables打开我试图倾听并没有什么端口。

当我键入

sudo service iptables status我得到:

1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1337:1347

2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1338:1348

3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000

记住我不是一个服务器精明的家伙。

任何帮助将不胜感激。

UPDATE:要开始我的节点服务器,我使用nodejs.org发现的基本代码:

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(1337, '127.0.0.1'); 
console.log('Server running at http://127.0.0.1:1337/'); 

这正是我的文件看怎么样

+0

你是什么意思,在亚马逊我设置安全基本上允许一切'?应用于该实例的安全组的设置是什么? – hanleyhansen

+0

后更新与我的安全组看起来像 –

+0

服务运行时,您可以从该机器卷曲本地主机吗?如果否,那么该服务不起作用。如果是,那么该港口可能不是其中的一个。 – sallie

回答

3

您没有提供足够的信息,但我会尝试概述一般的故障排除技巧。

  • 您的节点程序是否正在运行并提供服务请求?获取Ec2框并执行curl -v localhost:8000(或任何您的节点端口)。它应该吐出您的应用程序。如果没有,你的node.js设置不正确。

  • 你的nginx运行吗?打开包装并输入curl -v localhost。这将看起来在你的端口80.如果它没有代理到你的应用程序,它可能是一个nginx配置问题。

  • 你能通过IP地址到达盒子吗?从您的台式机/笔记本电脑,请执行curl -v x.x.x.x其中x.x.x.x是您的EC2公共IP地址。如果挂起,则存在防火墙问题。

  • 你能通过你的DNS到达盒子吗? (假设你试图让foo.com指向它)尝试curl -v http://foo.com/。如果这不起作用,您的DNS可能不正确。

然而,当我试图访问或卷曲它。它不起作用。

请更具体一些。

+0

会按照您询问的顺序回答您的问题:1. curl -v localhost:8000 spits hello world。 2.没有设置nginx它有一个问题,但不知道它如何与我正在尝试做什么相关。 3.我尝试公共IP和公共DNS与端口号,并没有做任何事情 –

+0

通过访问我的意思是在浏览器中使用公共IP或公共DNS与端口号,当我尝试从我的PC与PowerShell卷曲我getcurl -v localhost –