2014-10-04 64 views
2

我建立了一个Node JS服务器,并向它发出了一个请求,它只是加载并加载并最终表示“未找到服务器”。这里是我的文件的代码:节点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/'); 

当去外部IP:1337,发生上述现象。我运行Ubuntu 14.04,节点JS版本0.10.32。 关于发生了什么的任何提示? 谢谢

+0

'向它发出了请求',你如何提出请求?!? – thefourtheye 2014-10-04 14:11:23

回答

3

你正在特别收听127.0.0.1这是localhost。如果你想允许通过外部IP连接,你应该在你的监听中省略'127.0.0.1'参数。即将listen(1337, '127.0.0.1')更改为listen(1337)。否则,请转到localhost:1337。

+0

不解决它。 – SalmonKiller 2014-10-04 13:57:42

+0

浏览到http:// localhost:1337/work吗? – ekcr1 2014-10-04 13:59:54

+0

我无法访问localhost:1337。我正在通过SSH连接。 – SalmonKiller 2014-10-04 14:03:54

3

问题是你只在localhost上收听请求。如果您尝试从系统外部访问服务器,您将无法到达服务器,因为服务器没有侦听LAN IP。

变化

.listen(1337, '127.0.0.1'); 

.listen(1337); 

这将监听系统上所有可用的网络接口。如果您想在特定的网络接口上收听,您可以指定一个局域网IP(就像您为本地主机所做的那样)。

+0

不解决这个问题。 – SalmonKiller 2014-10-04 13:58:15

+0

您是否检查过此服务器正在运行的防火墙? – mscdex 2014-10-04 14:06:42

+0

是的。防火墙是好的。 – SalmonKiller 2014-10-04 14:08:17

0

对不起。 显然tomcat也使用端口80.所以通过禁用tomcat我得到它的工作。 谢谢。

+0

通常,当您尝试绑定到已在使用的端口时会出现错误。在启动服务器时你没有遇到某种错误吗? – mscdex 2014-10-04 15:25:54