课程名称: Node.js+Express+Koa2+开发Web Server博客
课程章节: 第6章 博客项目之登录
课程讲师: 双越
node app.js和nodemon app.js 进程崩溃则不能访问。
pm2遇到进程奔溃,会自动重启。可以还原到之前没有错误的情况。
package.json:
"scripts": { "dev": "cross-env NODE_ENV=dev nodemon app.js", "prd": "cross-env NODE_ENV=production pm2 start app.js" },
启动项目(开发环境):
命令:npm run dev,如果访问:http://localhost:8011/err,那么网页将会直接奔溃,无法访问。
启动项目(生产环境):
命令:npm run prd,如果访问:http://localhost:8011/err,那么网页还能正常访问,pm2进程会自动重启。
查看日志:pm2 log
新建PM2配置文件(包括进程数量,日志文件目录等)
修改PM2启动命令,重启
访问server,检查日志文件的内容(日志记录是否生效)
pm2.conf.json:
{
“apps”: {
“name”: “pm2-test-server”,
“script”: “app.js”,
// 监听文件变化,自动重启
“watch”: true,
“ignore_watch”: [
“node_modules”,
“logs”
],
// 配置多进程(因为是4核CPU,所以通常是处理4个进程)
“instances”: 4,
// 日志的存放路径
“error_file”: “logs/err.log”,
// 错误的存放路径
“out_file”: “logs/out.log”,
// 给每一行日志加一个时间戳
“log_date_format”: “YYYY-MM-DD HH:mm:ss”
}
}
操作系统会限制一个进程的最大可用内存。
无法充分利用机器全部内存。
无法充分利用多核CPU的优势。
系统内存中,多个进程中的内容是无法共享的。
因此多个进程之间,可以通过访问redis实现数据共享。
服务器运维,一般都由专业的OP人员和部分来处理。
大公司都有自己的运维团队。
中小型公司推荐使用一些云服务,如阿里云的node平台。