【发布时间】:2024-01-24 10:31:01
【问题描述】:
我有一个 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
如果我要去地址而不写端口(@987654324@),我会收到以下消息:
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 应用在虚拟机上运行,而不是在本地机器上运行。
有什么见解吗?
提前感谢您的帮助。
【问题讨论】:
-
3030端口开放了吗?
-
这应该是因为一个旧的 Node Js - Angular JS 项目之前在这个虚拟机上使用这个端口工作。如何检查它是否打开?否则有没有办法查看哪个端口是开放的?谢谢
-
您可以在防火墙设置中查看。或者使用
nmap命令 -
谢谢!我可以检查,它很接近。我已经打开它,现在一切正常!谢谢!
标签: node.js ssh deployment server