关于在CentOS服务器上采用pm2 部署node 服务

一、node环境部署

1. node包下载

// 获取node包,注意最近打开node官网或者npm 官网都存在超时等问题,大家可以直接使用wget 命令获取,获取路径参考以下命令(版本可以替换成你自己的开发环境一致的node版本就行)
wget https://nodejs.org/dist/v16.13.2/node-v16.13.2-linux-x64.tar.xz

2. 解压node包创建 node与npm 软连接

// 命令示例
// 解压xz 包
xz -d node-v16.13.2-linux-x64.tar.xz
// 解压tar包
tar -xvf node-v16.13.2-linux-x64.tar
// 创建 node 软连接 注意ln 命令中的路径均为绝对路径不可用相对路径,可能导致link失效
ln -s /home/share/node-v16.13.2-linux-x64/bin/node /usr/local/bin/node
// 创建 npm 软连接
ln -s /home/share/node-v16.13.2-linux-x64/bin/npm  /usr/local/bin/npm

3. 测试node 与npm 是否配置好

// 查看node 是否安装好,如果能看到相应的版本代表已经成功
node -v 
// 查看npm 是否安装好,同上
npm -v 

二、pm2 安装与软连接配置

1. pm2安装

// 全局安装pm2,这里如果安装超时,可以把镜像改成淘宝镜像获取
npm install pm2 -g 

2. pm2软连接建立

*注意查看我们的下载解压后的node/bin 目录下是否有pm2,参考如下
在我们下载的node包中查看是否pm2已经安装好

// 这里操作其实和node 配置一样,我们配置的时候查看下,pm2 是否安装好,如果已经安装好,则进行
ln -s /home/share/node-v16.13.2-linux-x64/bin/pm2 /usr/local/bin/pm2

3. 测试pm2是否已经配置好

pm2 -version

三、node项目 pm2配置添加

1. node项目中添加pm2.conf.json配置文件,注意这个文件创建的目录与我们项目的package.json 同层级

// 配置参考如下
    {
    
    
  "apps": {
    
    
    "name": "service-name", // 服务名称
    "script": "./bin/start.js",  // 项目启动入口
    "watch": "true", // 是否监测
    "ignore_watch": [  // 忽略文件
      "node_modules",   
      "logs"
    ],
    "instance": 2,  //进程实例
    "error_file": "logs/err.log", // 错误日志输出文件
    "out_file": "logs/out.log",  // 服务日志
    "log_date_format": "YYYY-MM-DD HH:mm:ss" // 日志输出时间格式
  }
}

2. package.json 添加pm2启动执行脚本

"scripts": {
    
    
    "start": "node bin/start --watch",
    "prod": "NODE_ENV=production pm2 start pm2.conf.json",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

四、运行项目

由于我上面用的是prod 启动脚本,所以我们执行

// 在当前node项目目录下,执行命令
npm run prod 

五、常用pm2 命令

// 通过上述操作,不出意外,我们已经把服务启动好了,
// 查看pm2 守护项目列表,
pm2 list ```
// 重启服务,这里的服务名称,对应的就是我们pm2配置文件中的 name属性所对应的值
pm2 restart 服务名称

// 停止服务
pm2 stop 服务名称

猜你喜欢

转载自blog.csdn.net/weixin_39370315/article/details/127756127
今日推荐