使用pm2部署Nodejs
最近用node写了一个小型的项目,项目完成后到了部署的阶段,才开始考虑怎样才能更好的监控项目。在node的开发过程中有很多痛点,最让人忍受不了的就是文件修改后服务的重启,需要不断的关闭进程,启动进程,后来研究了一下,发现可以用nodemon自动重启服务,方便了很多,但是项目需要上线的时候,发现nodemon不能后台运行,于是自己用python写了一个自动启停的脚本,可以实现后台运行,代码如下,
#!/bin/bash node_status(){ pids=`ps aux|grep node|grep www|awk '{print $2}'` if [ ${pids} ] then return 1 else return 2 fi } node_start(){ node_status if [ $? == 2 ] then nohup node /home/web/claire/bin/www >> /tmp/node/shell.log 2>&1 & fi } node_stop(){ node_status if [ $? == 1 ] then kill -9 ${pids} >> /tmp/node/shell.log 2>&1 fi } node_restart(){ node_stop sleep 5 node_start } node_defend(){ while true do node_status if [ $? == 2 ] then node_start fi sleep 5 done } ACTION=$1 case $ACTION in start) node_start ;; stop) node_stop ;; restart) node_restart ;; defend) node_defend ;;
写python脚本的时候,如果用编辑器,需要将编码格式转成unix格式,要不会报错,我用的nodepad++,修改方式为右键点击选择unix格式即可。
后来发现Nodejs有一个高大上的管理工具PM2,是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡。它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理、监控功能。并且使用起来非常简单,赶快上手试试吧。
Nodejs安装
之前nodejs安装,是去官方网站上下载安装包然后安装的,在使用pm2的过程中,了解到,nvm利器,可以方便切换nodejs版本,推荐用这个方法安装node。
删除之前安装的node,查询全局安装的模块然后删除
npm list -g --depth 0 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
执行curl过程中报错curl: (35) SSL connect error,执行
yum update nss
最后执行
source ~/.bashrc nvm--version //查看nvm是否安装成功 nvm install stable //安装最新稳定版本
PM2安装
安装环境
- Linux x86_64
- node v10.8.0
- npm 6.2.0
全局安装
npm install pm2 -g
安装成功后可直接启动
pm2 start bin/www
pm2参考地址:https://www.cnblogs.com/zzsdr...
相关推荐
daduryi 2020-06-14
boneix 2020-10-21
seanzed 2020-10-15
ifconfig 2020-10-14
学留痕 2020-09-20
往后余生 2020-09-17
kka 2020-09-14
redis 2020-09-07
lzccheng 2020-09-06
soyo 2020-08-31
stonerkuang 2020-08-18
LxyPython 2020-08-17
raksmart0 2020-08-17
Lzs 2020-08-14
MrHaoNan 2020-07-31
80530895 2020-07-05
lengyu0 2020-06-28
YarnSup 2020-06-28