最近在学习 node,写了个测试接口,想着学习一下如何部署 node 项目,这样方便日后写正式一点的项目好自行部署,这里记录下 pm2 的一些知识点。
¶一、常用命令
含义 | 命令 |
---|---|
启动服务 | pm2 start app.js |
指定名称启动服务 | pm2 start app.js --name markdown |
当文件变化时自动重启 | pm2 start app.js --watch |
查看服务列表 | pm2 list |
重启某个服务 | pm2 restart 0 / app.js |
停止某个服务 | pm2 stop 0 / app.js |
显示每个应用程序的 CPU 和内存占用情况 | pm2 monit |
查看某个应用程序的详细信息 | pm2 describe 0 |
查看输出的日志 | pm2 logs |
热更新,不停机 | pm2 reload all |
停止所有服务 | pm2 stop all |
删除某个服务 | pm2 delete 0 |
删除所有服务 | pm2 delete all |
更多命令可参考:pm2 常用命令 开机自启
¶二、配置文件
在/pm2
下新建文件config.json
,简单示例(单台服务器,非集群):
1 | { |
含义 | 命令 |
---|---|
name | 项目名称 |
script | 主程序入口 |
cwd | 启动目录 |
log_date_format | 日志的日期格式 |
max_memory_restart | 程序超过指定内存就重新启动 |
out_file | 输出文件路径 |
error_file | 错误日志路径 |
¶三、部署文件
¶1、通过 IP 地址请求
在项目内新建一个start.sh
文件,在服务器端可执行./start.sh
更新服务。服务启用后,可通过 ip + 端口号访问。脚本文件内容如下:
1 | git pull origin master |
注意
start.sh
需要有 x 权限,提示权限不够时可执行chmod a+x start.sh
¶2、通过域名请求
先在阿里云控制台解析一个域名,因为服务使用的是 9000 端口,所以搭配 nginx 使用。在/etc/nginx/conf
下新建一个配置文件koa-app.conf
,内容如下:
1 | server { |
¶四、项目代码
https://github.com/liuxy0551/koa-app
注意
本项目使用的端口是 9000,通过 IP 地址请求时记得在阿里云安全组中添加对应规则