我有一个NodeJs应用程序,可以在我的本地机器上运行良好。
现在,我想将它部署在具有给定IP和给定http地址的虚拟机上。
假设我的情况是服务器的IP和http地址分别为 134.00.00.00 和 http://server-virtualmachine.is.fr
我能够通过ssh连接到此服务器并将我的Node JS应用程序发送到 / var / www /
服务器的主文件是 app.js ,所以我执行了以下命令行来运行服务器。
node app.js
输出结果为:
App listening on port 3030 with adress 134.00.00.00
我没有错误。但是,通过直接在我的浏览器http://134.00.00.00:3030或http://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 :(得分:0)
感谢Ebrahim Pasbani,我可以看到我的3030端口未打开。为了检查这一点,我使用了以下命令行:
nmap ip
,更具体地说是nmap -p3030 ip
我打开它,现在它可以工作。