2017-06-14 53 views
0

我试图在我的godaddy服务器上运行我的nodejs/expressjs应用程序,但是我使用超时的任何端口。我试过使用我的本地设备上的应用程序,它工作正常。下面我有一段我的连接。nodejs在godaddy服务器上托管时在所有端口上超时

var app = express(); 

app.listen(8080, function() { 
    console.log("Listening on port " + 8080); 
}); 

当我运行通过ssh的程序,我没有得到任何错误

node index.js 
Listening on port 8080 

但是,当我去到相应的位置,在浏览器中,我得到:

xxx took too long to respond. 

ERR_CONNECTION_TIMED_OUT 

我m很确定它与在godaddy服务器上运行有关。如果任何人有经验使用nodejs使用此服务,有没有一个特定的端口,我应该使用,还是有任何其他设置,我应该做的?

+0

您是否在使用浏览器进行连接时指定了URL中的端口?如果你这样做,那么很确定你需要看看防火墙设置。 – viz

+0

我确实在url中指定了端口。这是一个共享服务器,所以我不认为我有权访问防火墙设置 –

+0

看看这个:https://kr.godaddy.com/help/accessing-your-servers-firewall-console-8553 – viz

回答

0

你有GoDaddy的VPS吗?所以我假设你也有root权限。

SSH到您的GoDaddy的服务器根和检查的Node.js应用程序,端口上的实际监听:

netstat -tunlp | grep 8080 

如果你看到任何结果那里的node.js的应用程序和端口则端口开了。

默认情况下,服务器上应该有一个防火墙,可能会阻塞大部分端口,并只允许必要的传入通信。

您可以检查是否有通过波纹管发出命令该端口的所有规则:

iptables -nvL | grep 8080 

如果返回任何结果,那么你必须添加一个iptables规则允许访问到该端口。有多种方法来做到这一点:

  • 完全访问权限从您的IP访问服务器
  • 允许你的IP来访问端口8080 GoDaddy的服务器上
  • 允许外界访问端口8080服务器

你可以阅读任何iptables的家伙,这是很容易添加/编辑/删除防火墙规则。大多数cPanel/WHM服务器都带有CSF防火墙(基于iptables和perl脚本)。

为了允许一个IP地址到您的防火墙(如果安装了防火墙CSF),你必须发出以下命令:

csf -a ip-address 

我希望帮助!

相关问题