2013-07-31 90 views
0

好的,所以这可能是一个很noob问题,但我刚刚开始与node.js,我注意到所有的教程告诉你做这样的事情:无控制台启动Node.js服务器

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

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

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

感谢

+0

创建类似systemd的服务来启动它。 (systemd的例子是万一您的服务器使用systemd,否则,无论您的操作系统使用什么) –

回答

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

好吧,这是有道理的。谢谢,我以前从未在生产环境中配置过自己的服务器。 – richbai90

0

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

如果您是通过SSH连接,你会做screen node server.js,然后你就按[Control] + [A]然后[Control] + [D]。你会立即弹出控制台,你可以exit而不停止node进程。