博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PM2 node进程管理工具 自动部署小结
阅读量:6238 次
发布时间:2019-06-22

本文共 1950 字,大约阅读时间需要 6 分钟。

PM2 的功能不多做介绍了,总之使用简单,功能强大。

今天实现了本地自动部署node项目到服务器的流程。简单总结下几个注意点。
建议先看

  1. 先要保证要部署的服务器上(以下简称server)能直接ssh拉仓库代码,比如 git clone git@gitee.com:finley/demo.git。不行的话配下server生成ssh-key,然后把public key告诉代码仓库服务商,比如coding.net, github。
  2. 权限问题,比如server的登录用户是Ubuntu,将来项目要部署在/home/ubuntu下面,可以执行下 sudo chown ubuntu:ubuntu /home/ubuntu/.pm2/* 不然可能会部署失败。
  3. 部署成功后会在配置的项目路径里出现以下三个目录:

current -- 当前服务运行的文件夹(是source的软链接)

share -- log pid 等共享数据
source -- clone 下来的源代码

  1. 配置脚本
module.exports = {  /**   * Application configuration section   * http://pm2.keymetrics.io/docs/usage/application-declaration/   */  apps : [    {      name      : 'NODE-API',      script    : 'server.js',      env_development: {        NODE_ENV: 'development',        SERVER_PORT: 8081,        LOGSTASH_URL: 'http://localhost/finley/PHP/test.php'      },      env_production : {        NODE_ENV: 'production',        SERVER_PORT: 8081,        LOGSTASH_URL: 'http://192.168.100.16:9700'      }    }  ],  /**   * Deployment section   * http://pm2.keymetrics.io/docs/usage/deployment/   */  deploy : {    // 项目信息    // 下面的配置是我用什么用户登录哪个服务器,从哪拉代码,项目存到什么位置。拉完执行的脚本是啥    'node1' : {      user : 'ubuntu',      // 写成数组,可以同时部署到多台服务器      host : '119.254.xxx.xxx',      ref  : 'origin/develop',      repo : 'ssh://git@demo.com/demo.git',      // 项目的存放地址,会生成current, source, share目录      path : '/home/ubuntu/node-project',      // "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"],      "post-deploy" : 'npm install && pm2 startOrRestart ecosystem.config.js --env production'    }  }};
  1. 执行命令, 如果是windows,在CMD中执行没用,建议在git bash下执行。
    node1就是要部署的项目名称
    pm2 deploy ecosystem.config.js node1 setup
    这个命令只是拉仓库代码
    pm2 deploy ecosystem.config.js node1
    执行这个命令会执行 post-deploy,运行项目

pm2 reload 和pm2 restart 有啥区别

官方说明:As opposed to restart, which kills and restarts the process, reload achieves a 0-second-downtime reload.

简单理解:
restart = stop+start
reload = 重新读取配置文件
具体用哪个要根据项目运行实际情况,有些项目需要7*24运行,不得stop,这时候用reload比较好。

转载地址:http://dfkia.baihongyu.com/

你可能感兴趣的文章
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
马士兵教学语录
查看>>
计算机网络与Internet应用
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
linux性能剖析工具
查看>>
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
error LNK2001: 无法解析的外部符号 __CrtDbgReport
查看>>
【多线程】的简单理解&进程 and【你的电脑是几核的?】
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>
scikit-learn预处理实例之一:使用FunctionTransformer选择列
查看>>
【距离GDOI:137天】 扩展KMP...字符串QAQ
查看>>
Oracle 10g 下载地址
查看>>
c# Unity依赖注入WebService
查看>>