一、PM2是什么
是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡。它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理、监控功能。并且使用起来非常简单。
嗯嗯,最好的用处就是监控我们的生产环境下的node程序运行状态,让它给我们日以继日的处于工作状态。
pm2官方文档
二、为森么要使用pm2
原始社会的我们开发node服务端程序一般过程:
编写好node程序app.js,运行node app.js;或者写入script使用npm运行;打开浏览器访问;
好像需要修改内容,浏览器对修改的内容没有显示出来?->node app.js->再次运行;
浏览器忽然访问不到服务,好像出错啦?重启下->node app.js->再次运行;
哎呀开了好多控制台窗口,一不小心关闭了,服务又访问不到了,继续打开控制台->node app.js->再次运行;
好崩溃!好像有个工具nodemon;安装使用nodemon app.js;哇,可以自动监听文件修改变化自动重启,但是关闭控制台服务还是会被摧毁。
通过这个很常用的场景,我们了解到要避免这些麻烦一个服务器至少需要有:后台运行和自动重启,这两个能力。
再来看看使用pm2可拥有的能力:
日志管理;两种日志,pm2系统日志与管理的进程日志,默认会把进程的控制台输出记录到日志中;
负载均衡:PM2可以通过创建共享同一服务器端口的多个子进程来扩展您的应用程序。这样做还允许以零秒停机时间重新启动应用程序。
终端监控:可以在终端中监控应用程序并检查应用程序运行状况(CPU使用率,使用的内存,请求/分钟等)。
SSH部署:自动部署,避免逐个在所有服务器中进行ssh。
静态服务:支持静态服务器功能
支持开发调试模式,非后台运行,pm2-dev start ;
。。。。。太过强大!
pm2常用命令
启动服务pm2 start [options] 启动指定应用
pm2 start app.js //启动app.js应用
pm2 s