2012-03-05 78 views
1

我刚刚安装我的node.js应用程序在安全组快速启动并启用http端口的Windows微型实例。EC2-无响应的http请求

我在实例中打开了防火墙,并打开了入站和出站端口80,443。

尽管如此,我的http请求没有被node.js应用程序所支持。 从日志中我看到该应用程序已连接到redis和mongo,并且socket.io也已启动。

怎么了?为什么http请求被阻止?

回答

0

终于发现问题了。

我介绍log4js和综合这与快递,如,

app.use(log4js.connectLogger(logger, { level: log4js.levels.ERROR })); 

这造成的问题。不知何故,这是失败的。看起来它只适用于DEBUG。在评论这个之后,它开始工作。奇怪!

0

您是否有机会在之上构建您的应用程序示例网络服务器目前也在Node.js主页上显示?样品目前看起来像这样:

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/'); 

无论哪种方式,您的Node.js服务器可能根本无法在正确的端口/主机名组合听 - 的实例Web服务器侦听端口1337(而不是常规HTTP端口80)和仅在本地主机上(而不是在分配给您的EC2实例的地址私有/内部IP)。

如果这些假设条件,可以通过相应地调整listen()声明实现你的目标,看到我的回答有关问题Node.js Amazon EC2 example webserver - no result延长的讨论,包括关于灵活运用server.listen(port, [hostname], [callback])的一对夫妇的变化。

祝你好运!

+0

您可以尝试的其他方法是暂时打开0.0.0.0/0的所有端口,以查看问题是否存在于安全组中,或者存在实例问题。 – bwight 2012-03-05 23:01:44

+0

@Steffen,我的应用程序基于express,仅在端口80上侦听。我在我的机器上进行了本地测试,它工作得很好。但是不知道为什么它不在EC2 – user644745 2012-03-06 02:41:30

+0

@bwight中工作,我也打开了所有TCP端口为0.0.0.0/0。它仍然没有回应。我认为这可能与Windows 2008防火墙设置有关。最初ping不工作,当我在防火墙中更改了一些设置时,ping开始工作。不知道HTTP有什么问题? – user644745 2012-03-06 02:43:03