2011-11-14 23 views
0

我將node.js部署到Amazon EC2 Windows實例。下面是我運行JS代碼:窗口上的node.js不向外部IP提供服務

require('http').createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(80); 

它完美,當我訪問http://localhost 不過,這並不當我試圖通過外部IP來訪問服務器的工作:HTTP:// [外部IP]

我跑的時候

「的netstat -ano」 我可以看到這一行:

0.0.0.0:80 

如果我運行IIS,然後將其添加兩行

0.0.0.0:80 
[::]:80 

[::]是什麼意思?爲什麼當我運行node.js時沒有添加?我認爲,這就是爲什麼node.js不向外部IP提供請求的原因。我如何讓node.js在Windows上工作?

+3

該IIS線路用於IPv6。試聽(80,'::')。但也許只是你的防火牆沒有配置寬容。 – thejh

+0

謝謝jj!你回答了這個問題。 node.exe被Windows防火牆阻止。 –

回答

1

(如答案重新張貼評論)

您可能需要重新配置防火牆,它可能配置過於嚴格。

+0

請說明你需要配置什麼。我還在EC2中配置了我的節點應用程序。但它不響應http請求。我檢查了防火牆,打開了端口80,檢查了實例的安全組。似乎沒有任何工作......請說明你做了什麼。 – user644745

+0

@ user644745您可以在啓動服務器的位置發佈代碼片段嗎? – thejh

+0

終於找到了問題。 我介紹了log4js並將其與express整合,as, app.use(log4js.connectLogger(logger,{level:log4js.levels.ERROR})); 這造成了這個問題。不知何故,這是失敗的。看起來它只適用於DEBUG。在評論這個之後,它開始工作。奇怪! – user644745