ESSAY / NOTE

pm2js进行项目部署

为什么使用pm2

nodejs是一门单线程、高并发的语言,其特性造成了对服务器资源的利用不充分,这时候一个能够帮助我们充分利用服务器资源的nodejs服务管理工具出场了。

如何使用pm2

首先全局安装pm2
npm install -g pm2
然后为自己的项目创建启动文件,暂且命名为pm2.json
复制
{ "apps": [ { "name": "pord-proj", "cwd": "/data/test-auto-port", "script": "./bin/www", "instances": 0, "exec_mode": "cluster", "env": { "NODE_ENV": "production", "PORT": "4000" } }, { "name": "test-proj", "cwd": "/data/test-auto-port", "script": "./bin/www", "env": { "NODE_ENV": "development", "PORT": "5000" } } ] }
简单解释下,cwd代表着项目的根目录,script代表在项目根目录下启动项目的文件,name代表我们将在pm2 list命令中看到的服务的名称。
这里我是为自己的项目启动了两个环境,分为生产环境和开发环境,大家可以根据自己的需求自由的增减环境。需要注意的是,生产环境的配置多了两点exec_modeinstances。它们分别代表着启动项目的方式为集群(cluster)和集群的最大实例数量(0代表根据服务器性能自行配置)。他们分别运行于不同的端口,轻松实现一套代码分环境部署。
我们可以根据自己的需求决定,是多个项目同时写到一个JSON文件里面进行管理,或者各自使用自己的JSON文件。

如何启动pm2

复制
pm2 start path/to/pm2.json
image.png

pm2常用命令

复制
# pm2运行进程的列表 pm2 list # pm2停止id为1的服务 pm2 stop 1 # pm2 重启id为1的服务 pm2 restart 1 # pm2关闭并删除所有服务 pm2 kill # pm2 保存当前服务列表以用来服务器重启自动启动 pm2 save
https://www.deepworker.online/article?id=22