2017-01-31 153 views
0

我有一个在本地机器上运行良好的NodeJs应用程序。在虚拟服务器机器上部署NodeJS的问题

现在,我想将它部署到具有给定IP和给定http地址的虚拟机上。

假设我的情况是,IP和服务器的HTTP地址分别为134.00.00.00http://server-virtualmachine.is.fr

我能够通过ssh连接到该服务器并发送我的节点JS应用/无功/网络/

服务器的主文件是app.js所以我执行该下面的命令行运行服务器。

node app.js 

输出是:

App listening on port 3030 with adress 134.00.00.00 

我没有任何错误。然而,在http://134.00.00.00:3030http://server-virtualmachine.is.fr:3030直接在我的浏览器检查时,接头是不成立的,我的浏览器终于​​通过显示此消息结束了:

134.00.00.00 took too many times to answer 

如果我要去的地址,而无需编写端口(http://134.00.00.00 ),我有以下消息:

Not Found 
The requested URL/was not found on this server. 

然后,为了看到问题出在哪里,我试着设置一个hello world示例文件。

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

出现同样的问题。但是,我打开一个新的标签,并打开一个新的SSH连接并执行以下命令行:

curl http://134.00.00.00:3030 

措手不及,我有我的终端上"Hello world"

我不是真的到服务器,我尝试自己理解,但现在我不理解这个问题以及如何解决它。

我想让我的NodeJs应用程序在虚拟机上工作,而不是在本地机器上工作。

任何见解?

非常感谢您的帮助。

+0

3030端口是否打开? –

+0

它应该是因为一个旧的Node Js-Angular JS项目在此虚拟机上使用此端口之前工作。我如何检查它是否开放?否则有没有办法查看哪个端口打开?感谢 – lilouch

+1

您可以在防火墙设置中检查它。或者使用'nmap'命令 –

回答

0

感谢Ebrahim Pasbani,我可以看到我的3030端口没有打开。为了确认,我用以下命令行:

nmap ip 

更具体nmap -p3030 ip

我打开了它,现在它的工作原理。