最近在学习 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 地址请求时记得在阿里云安全组中添加对应规则