NodeJs Web App测试完成后,要怎么部署呢?介绍两个不错的方案

已知以下情景:

  • 我要为 「kenniu」这个项目做配置

  • 它的入口文件在 「/path/to/entry.js」

  • 运行的User和Group都是 MrKen

  • node安装在了 /usr/bin/node

  • 监听端口是2589

接下分别看这两种方案。

壹 | Fisrt

方案一:配置System,24小时保持在线

  • cd /etc/systemd/system/

  • sudo vi kenniu.service
    输入以下配置信息

clipboard.png

  • sudo chmod +x kenniu.service, 加上可执行权限

完成以上操作即可,非常简单。

启动:sudo systemctl start kenniu

除了start以外,可以stop、restart,以及status查看状态(出错时可查看)。此外,还可以 sudo systemctl enable kenniu 来使这项服务开机自动启动

亲测OK,很爽很好用!

优点:

  • 配置简单,学习成本低

  • 出错自动重启,24保持在线(如果频次太高也是会切断的,所以最靠谱的保障还是得靠监控)

  • 通用,不但CentOS支持,其他版本的Linux也支持

缺点:

  • 不太灵活

貳 | Second

方案二:编写Service init脚本

  • cd /etc/init.d/ 或 /etc/rc.d/init.d/

  • sudo vi kenniu,输入shell脚本(后面再细讲)

  • sudo chmod +x kenniu

  • sudo chkconfig --add kenniu

完成以上操作即可。

启动:sudo service start kenniu

除了start以外,可以stop、restart等。
亲测成功,也很爽!
clipboard.png
方案二的脚本怎么写*

到目前为止都很简单,就剩下最难的——脚本怎么写。
其大体的框架如以下伪代码,看注释。另外点击 可以获取我的完整配置,根据你的情况把上边的变量值改一下即可用。

clipboard.png
优点:自已写脚本处理,非常灵活,包括各个步骤要输出什么提示语都可以自己掌控
缺点:需要学些shell脚本;不太通用,貌似CentOS、RedHat等才支持,不甚清楚

此文是闲暇时,把之前公众号的文章搬过来的。

clipboard.png


啃先生
1.4k 声望1.2k 粉丝

前腾讯前端开发工程师,后来有一年时间经历参与创业,目前东南亚电商 Shopee,人在深圳。个人作品: