Skip to content

CentOs: 使用pm2部署nodejs应用 #13

@stack-wuh

Description

@stack-wuh

系统CentOs

下载pm2

npm install -g pm2 # 下载pm2包

pm2 -v # 查看pm2的版本号, 如果能查看说明安装成功

注意

如果出现 pm2 no command 的提示,是由于路径的问题,可以做如下配置:

whereis pm2 
# /home/node/bin/pm2
ln -s /home/node/bin/pm2  /usr/local/bin # 前一个地址代表pm2的安装地址,后一个地址代表全局

如果运行指令只出现PM2 Spawning PM2 daemon with pm2_home=/root/.pm2,可能是nodejs的版本号太低了, 可以做如下操作

npm install n -g

n -v # 出现 no command 可以照pm2配置地址

n latest # 安装最新版node

Node的版本管理器 N

安装完成之后再次运行指令

pm2 -v # 出现版本号接就表示可以使用了

单个Node应用使用pm2

在nodejs的应用中使用pm2,可以使用脚本,在package.json文件中配置

{
  "scripts: "pm2 start pm2.yml"
}

然后使用 npm run pm2

当然在此之前需要新建一个pm2.yml文件,简单的配置如下:

apps: 
  - script   : "/home/data/apps/my-app-name/bin/www"
     name   : "my-app-name"
     watch  : true
     env      :
         NODE_ENV   :  'development'
         port                : 3100

其余配置可以去Pm2官网查询

服务器脚本

上一种介绍的是在一个node应用中使用pm2的脚本,现在介绍一下服务器端的脚本文件配置,其配置项跟上面没有什么太大的差别。如下:

apps: 
  - script   : "/home/data/apps/my-app-name/bin/www"
     name   : "my-app-name"
     watch  : true
     env      :
         NODE_ENV   :  'development'
         port                : 3200
  - script   : "/home/data/apps/my-app-name/bin/www"
     name   : "my-app-name"
     watch  : true
     env      :
         NODE_ENV   :  'development'
         port                : 3300

注意: 端口号一定不能重复,其配置由单个转换为多个,运行就很简单了,一键启动全部node应用

whereis pm2.yml
# /opt/node/scripts/pm2.yml

pm2 start /opt/node/scripts

pm2 list

官网介绍的配置方法不止一种,剩余的可以慢慢玩慢慢补

Metadata

Metadata

Assignees

No one assigned

    Labels

    Nodeweb server

    Projects

    Status

    utils

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions