• PM2 对 Node 项目进行线上部署与配置


    pm2 是一个带有负载均衡功能的 Node 应用的进程管理器。

    1. pm2 主要特点

    • 内建负载均衡(使用Node cluster 集群模块)
    • 保持后台运行
    • 进程守护,系统崩溃后自动重启
    • 启动多进程,充分利用CPU和内存
    • 自带日志记录功能
    • 控制台检测
    • 提供 HTTP API

    2. pm2 安装及常用命令

    安装

    $ npm install pm2 -g   // 全局安装
    $ pm2 --version  // 查看版本
    

    pm2 命令

    启动(入口文件为app.js, 配置文件为pm2.conf.json):

    // 直接启动
    $ pm2 start app.js
    
    // 通过配置文件启动
    $ pm2 start app.js
    

    查看启动历史:

    $ pm2 list
    

    重启:

    修改代码后需要执行:

    $ pm2 restart <AppName>/<id>
    
    <!--  <AppName>/<id> 可通过 pm2 list 查看-->
    

    停止进程(可重新启动)

    $ pm2 stop <AppName>/<id>
    

    删除进程(不可重新启动)

    $ pm2 delete <AppName>/<id>
    

    其他命令

    pm2 info <AppName>/<id>  // 查看进程详细信息
    pm2 log <AppName>/<id>   // 查看进程日志, 执行后,可进行线上调试,查看打印日志
    pm2 monit <AppName>/<id>  // 打开监控 logs
    

    3. pm2 常用配置

    根目录下,新建空文件 /logs/err.log 和 /logs/out.log

    新建配置文件 pm2.conf.json

    pm2.conf.json:

    {
        "apps": {
            "name": "pm2-test-server", // 起个进程名,即AppName
            "script": "app.js",  // 启动的入口文件(koa2项目中为/bin/www.js)
            "watch": true,      // 监听文件变化,自动重启
            "ignore_watch": [   // 不需要监听的文件
                "node_modules",
                "logs"
            ],
            "instances": 4,   // 设置多进程
            "error_file": "logs/err.log",  // 错误日志存储的文件
            "out_file": "logs/out.log",    // console.log()打印的都会放进去
            "log_date_format": "YYYY-MM-DD HH:mm:ss" // 给每行日志标记一个时间
        }
    }
    

    修改package.json:

    {
      "name": "pm2-test",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1",
        "dev": "cross-env NODE_ENV=dev nodemon app.js",
        "prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
      
        ... 
        
        "cross-env": "^5.2.0",
        "nodemon": "^1.19.1"
        
        ...
        
      }
    }
    

    配置完后,执行下面命令,即可启动项目

    $ npm run prd
    
  • 相关阅读:
    mysql 数据库字符集问题
    适配器模式
    thinkphp学习笔记
    StarDict
    dereferencing pointer to incomplete type
    转载的一篇 关于git的
    策略模式
    让你的Ubuntu看的更顺眼些
    vim 配置
    .NET WEB SERVICE 学习记录
  • 原文地址:https://www.cnblogs.com/cckui/p/10997638.html
Copyright © 2020-2023  润新知