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_mode
和instances
。它们分别代表着启动项目的方式为集群(cluster
)和集群的最大实例数量(0代表根据服务器性能自行配置)。他们分别运行于不同的端口,轻松实现一套代码分环境部署。我们可以根据自己的需求决定,是多个项目同时写到一个JSON文件里面进行管理,或者各自使用自己的JSON文件。
如何启动pm2
复制
pm2 start path/to/pm2.json
pm2
常用命令
复制
# pm2运行进程的列表
pm2 list
# pm2停止id为1的服务
pm2 stop 1
# pm2 重启id为1的服务
pm2 restart 1
# pm2关闭并删除所有服务
pm2 kill
# pm2 保存当前服务列表以用来服务器重启自动启动
pm2 save