1

我在端口 80 上运行了 httpd,我正在尝试将节点应用程序绑定到端口 8080。

这里是:

var server = require('http').createServer(function(req, res){

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
});
server.listen(8080);

显然已经通过 ssh 命令行运行它

node myApp.js

但每当我在浏览器中输入“http:// my-domain :8080/”时,它就会挂起,什么也没给我。

我尝试了一系列不同的端口并在主机名 0.0.0.0 上进行侦听,都给出了相同的结果。

按照建议的评论运行 netstat ,结果是:

tcp        0      0 0.0.0.0:8080               0.0.0.0:*                   LISTEN      3894/node           

我在 nan 非托管 VPS 上使用 centOS!

编辑:看起来它是一个防火墙问题,有人可以为我指出正确的方向,如何为 CentOS VPS 配置防火墙..?

4

2 回答 2

2

可能是您的防火墙设置。在服务器上的 shell 提示符下,尝试使用curl.

curl -v http://localhost:8080/

如果您可以通过localhost但不能通过浏览器访问它,那么您很可能遇到了防火墙问题。

如果您可以通过以下方式访问服务器,localhost那么接下来要做的就是通过 IP 地址从外部测试服务器。如果您可以通过 IP 地址访问它,那么您有 DNS 问题。如果您无法从外部通过 IP 地址访问它,那么您有防火墙问题。

防火墙问题是特定于平台的。我们需要了解平台才能为您指明正确的方向。

于 2013-05-26T20:15:41.443 回答
1

试着写:

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

.listen(8080);在同一行。

或者从服务器运行它localhost:8080/可能会从外部阻止

于 2013-05-26T20:22:05.203 回答