Skip to content
一、线上环境

服务器稳定性 充分利用服务器硬件资源,以便提供性能 线上日志记录

具体:

  • 进程守护,系统崩溃自动重启
  • 启动多进程,充分利用 CPU 和 内存
  • 自带日志记录功能
1. PM2 介绍
  • 下载安装 官网参考:https://pm2.keymetrics.io/docs/usage/quick-start/
    • npm i pm2 -g
    • pm2 --version
  • 基本使用
    json
    {
      "scripts": {
        "pm2": "cross-env NODE_ENV=production pm2 start bin/www",
     }
    }
  • 常用命令
    shell
    pm2 start 启动的文件
    pm2 list
    pm2 restart `<AppName>/<id>`
    pm2 stop `<AppName>/<id>`
    pm2 delete `<AppName>/<id>`
    pm2 info `<AppName>/<id>`
    pm2 log `<AppName>/<id>`
    pm2 monit `<AppName>/<id>`
2. PM2 进程守护
  • node app.js 和 nodemon app.js 进程奔溃则不能访问
  • pm2 遇到进程奔溃,会自动重启
3. PM2 配置和日志记录
  • 新建 PM2 配置文件(包括进程数量、日志文件目录等)
  • 修改 PM2 启动命令,重启
  • 访问 server,检查日志文件的内容(日志记录是否生效)
    json
    {
      "apps": {
        "name": "pm2-test-server",
        "script": "app.js",
        "watch": true,
        "ignore_watch": [
          "node_modules",
          "logs"
        ],
        "instances": 4,
        "error_file": "logs/err.log",
        "out_file": "logs/out.log",
        "log_date_format": "YYYY-MM-DD HH:mm:ss"
      }
    }
4. PM2 多进程
  • 为何使用多进程
    • 充分利用机器的全部内存
    • 充分利用多核 CPU 的优势
  • 多进程和 redis
    • 多进程之间,内存无法共享
    • 多进程访问一个 redis,实现数据共享
5. PM2 与 koa2
  • 配置
    • 新建 pm2.conf.json 官网配置参考:https://pm2.keymetrics.io/docs/usage/environment/
      json
      {
        "apps": [{
          "name": "www",
          "script": "./bin/www",
          "watch": true,
          "ignore_watch": [
          "node_modules",
          "logs"
          ],
          "error_file": "logs/err.log",
          "out_file": "logs/out.log",
          "log_date_format": "YYYY-MM-DD HH:mm:ss"
        }]
      }
6. PM2 与 Vue
  • 启动 vue 项目
    shell
    # -- 和 run 一定分开
    pm2 start npm -- run serve

Released under the MIT License.