无控制台启动Node.js服务器

时间:2013-07-31 19:56:42

标签: node.js express

好的,所以这可能是一个非常的菜鸟问题,但我只是从node.js开始,我注意到所有的教程都告诉你做这样的事情:

app.listen(3000);
console.log('Listening on port 3000');

启动服务器。这适用于在本地主机上进行测试,但它需要我通过键入node server.js

来使用控制台来启动服务器

在生产环境中,您如何管理?我确信我不必使用像putty这样的程序来隧道并启动服务器。谁可以给我解释一下这个?我目前正在使用带有快速Web框架的node.js最新版本。

由于

2 个答案:

答案 0 :(得分:1)

除非您使用亚马逊的AWS Elastic BeanstalkHeroku之类的奇特平台,否则在生产环境中您仍需要某种控制台访问权限(SSH)才能登录服务器并上传并开始你的申请。您需要确保应用程序作为后台服务连续运行,并在崩溃时重新启动。

节点的实用程序可以帮助您实现这一点,例如forever

永远,你会做这样的事情:

$ git clone git://gitserver:myapp.git
$ cd myapp
$ npm install
$ sudo npm install -g forever
$ forever start server.js

这使得server.js在后台运行作为守护进程,您可以关闭SSH。要查看运行的守护程序和可以运行的日志:

$ forever list
$ forever logs 0

该应用仍将在端口3000上运行,因此您可能需要配置反向代理服务器以重定向端口80,例如nginx。

答案 1 :(得分:0)

如果您使用的是Ubuntu或其他一些Linux版本,请尝试使用screen

如果您通过SSH连接,则可以screen node server.js,然后按[Control] + [A],然后按[Control] + [D]。您可以在控制台上弹出,然后exit可以不停止node进程。