栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js设置,易于部署和更新

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js设置,易于部署和更新

结合过去一周内收集的所有知识和经过测试的方法,我决定选择以下所述的部署解决方案(我想与其他人分享类似的问题,我很乐意为他人提供帮助) ):

只要脚本是在node.js脚本中生成的, forever
就可以自动处理脚本错误 在脚本更改时自动重新加载 ,因为它还包括脚本监视功能。
****

为此,我添加了一个

server.js
启动
app.js
我们实际上要运行的脚本:

server.js

var forever = require('forever'),    child = new(forever.Monitor)('app.js', {        'silent': false,        'pidFile': 'pids/app.pid',        'watch': true,        'watchDirectory': '.',      // Top-level directory to watch from.        'watchIgnoreDotFiles': true, // whether to ignore dot files        'watchIgnorePatterns': [], // array of glob patterns to ignore, merged with contents of watchDirectory + '/.foreverignore' file        'logFile': 'logs/forever.log', // Path to log output from forever process (when daemonized)        'outFile': 'logs/forever.out', // Path to log output from child stdout        'errFile': 'logs/forever.err'    });child.start();forever.startServer(child);

这将监视应用程序目录中的所有文件的更改,并在更改一次后重新启动运行的脚本

forever
。由于日志和pidfile位于应用程序的子目录中,因此必须从文件监视中忽略它们,否则脚本将循环重启:

.foreverignore

pids/**logs/**

为了使这一切在系统启动时启动,并使我们能够轻松地使用来控制服务

start node-app
stop node-app
我们使用Ubuntu的Upstart。我将两个示例(这个和这个例子)组合在一起,可以很好地完成工作:

/etc/init/node-app.conf

# This is an upstart (http://upstart.ubuntu.com/) script# to run the node.js server on system boot and make it# manageable with commands such as# 'start node-app' and 'stop node-app'## This script is to be placed in /etc/init to work with upstart.## Internally the 'initctl' command is used to manage:# initctl help# initctl status node-app# initctl reload node-app# initctl start node-appdescription "node.js forever server for node-app"author      "Remco Overdijk <remco@maxserv.nl>"version "1.0"expect fork# used to be: start on startup# until we found some mounts weren't ready yet while booting:start on started mountallstop on shutdown# Automatically Respawn:respawnrespawn limit 99 5env HOME=/home/user/node-app-dirscript    # Not sure why $HOME is needed, but we found that it is:    export HOME=$HOME    chdir $HOME    exec /usr/local/bin/node server.js > logs/node.log &end script#post-start script#   # Optionally put a script here that will notifiy you node has (re)started#   # /root/bin/hoptoad.sh "node.js has started!"#end script

正如Kevin在他的文章中明智地提到的那样,以root身份运行节点是不明智的,因此我们将其更改为

execsudo -u www-data /usr/local/bin/node
下周移至新服务器的时间。

因此,

forever
会自动启动
node server.js
,由来启动
upstart
,并监视崩溃和文件更改,从而使整个设置始终保持运行所需的时间。

我希望这对任何人都有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436554.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号