一、线上环境
服务器稳定性 充分利用服务器硬件资源,以便提供性能 线上日志记录
具体:
- 进程守护,系统崩溃自动重启
- 启动多进程,充分利用 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" }] }
- 新建 pm2.conf.json 官网配置参考:https://pm2.keymetrics.io/docs/usage/environment/
6. PM2 与 Vue
- 启动 vue 项目shell
# -- 和 run 一定分开 pm2 start npm -- run serve