最近开发了一个node项目,开发完了准备上线,于是就去找运维给部署一下,部署了N久,然后问我怎么弄?!!妈呀,小女子我是个弱鸡呀,不懂运维部署啥的,只知道切页面而已。。。
幸好在好同事的牵引下,我知道了pm2这个东东,记录一下,怕以后忘了。
什么是pm2?
别人说:
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单
。
我说:
就是服务死了可以自动重启服务,不需要半夜被电话惊醒然后手动去重启服务,可以安心的睡美容觉。
下面说说用法
先安装
npm install -g pm2
然后window系统装一下Xshell 5,新建一个会话,输入机器ip、账号以及密码
然后就可以在这个在这个会话里敲命令了pm2 start app.js 启动项目
然后可以根据你的心情,执行下面的命令得到
# 1. 启动
$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 以my-api 为 PM2 进程名称
$ pm2 start app.js --watch # 实时监控 app.js 的方式启动,当 app.js 文件有变动时,PM2 会自动reload
# 2. 查看进程
$ pm2 list # 显示所有进程状态
# 3. 监控
$ pm2 monit # 监视所有进程
# 4. 停止
$ pm2 stop all # 停止所有进程
$ pm2 stop 0 # 停止指定的进程
# 5. 重载
$ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
# 6. 重启
$ pm2 restart all # 重启所有进程
$ pm2 restart 0 # 重启指定的进程
# 7. 删除 PM2 进程
$ pm2 delete 0 # 杀死指定的进程
$ pm2 delete all # 杀死全部进程
# 8. 日志操作
$pm2 logs # 显示所有进程日志
$pm2 flush # 清除所有日志
$pm2 reloadLogs # 重载所有日志
# 9. 升级 PM2
$npm install pm2@lastest -g # 安装最新的 PM2 版本
$pm2 updatePM2 # 升级 PM2
# 10. 更多命令参数请查看帮助
$pm2 --help
$ pm2 startup # 产生 init 脚本 保持进程活着
$ pm2 web # 运行健壮的 computer API endpoint
more
域名配置
通过 IP 地址访问是没有问题的,但 IP 地址无意义从而增加了记忆负担,此时可以通过配置域名来访问 Node.js 应用。
那么,你可以叫运维帮忙在nginx.conf里添加如下配置
server {
listen 80;
server_name xx.xxx.cn;
location /loginpagemaker/ {
proxy_pass http://127.0.0.1:8865;
}
}