侧边栏壁纸
  • 累计撰写 25 篇文章
  • 累计收到 1 条评论

PM2 快速上手-Nuxt + pm2 部署 PC 商城

2025-1-5 / 0 评论 / 51 阅读

PM2是 Node.js 的优秀运行时管理工具,专为简化和优化 Node.js 应用程序的生产部署与运行而设计。

PM2 官网链接: https://pm2.keymetrics.io/

1.PM2 的优势
持续运行:即使应用出错或崩溃,也能自动重启。
负载均衡:智能地自动分配入站连接到多个应用实例。
日志集中管理:一处集中显示所有应用的日志。
实时监控:实时查看所有应用的状态及细节性能指标。

  1. 安装 PM2
    选择以下任意一种方法全局安装 PM2:
    yarn global add pm2

    或者

    npm install pm2 -g
  2. PM2 常用命令
    启动: pm2 start app.js- 启动并保护您的应用。
    查看列表: pm2 list- 显示所有 PM2 托管的应用列表。
    监控应用: pm2 monit- 查看应用的资源使用和日志。
    查看日志: pm2 logs- 获取应用的实时日志。
    重启应用: pm2 restart
    停止应用: pm2 stop
    移除应用: pm2 delete

🚀 修改 package.json

如上图在 script 标签中添加

"pm2": "pm2 start ./ecosystem.config.cjs --interpreter babel-node --env production",
"bundle": "rollup -c"

4、配置pm2启动文件
🔧 在根目录创建 ecosystem.config.cjs 内容如下

内容如下:

// 配置pm2
module.exports = {
    apps: [
        {
            name: "JavaMerPcMall",
            script: "./.output/server/index.mjs", // 其实使用npm去启动了./node_modules/nuxt/bin/nuxt这个文件。当我们cd到我们的项目目录之后,我们最终可以执行如下命令来启动:
            args: "start", // 传递给脚本的参数
            watch: true, // 开启监听文件变动重启
            ignore_watch: ["node_modules", "public", "logs"], // 不用监听的文件
            exec_mode: "fork",// 自家主机window cluster_mode 模式下启动失败
            instances: "1", // max表示最大的 应用启动实例个数,仅在 cluster 模式有效 默认为 fork
            autorestart: true, // 默认为 true, 发生异常的情况下自动重启
            max_memory_restart: "1G", //  // 最大内存限制数,超出自动重启
            error_file: './logs/app-err.log', // 错误日志文件
            // out_file: './logs/app-out.log', // 正常日志文件
            merge_logs: true, // 设置追加日志而不是新建日志
            log_date_format: "YYYY-MM-DD HH:mm:ss", // 指定日志文件的时间格式
            min_uptime: "60s", // 应用运行少于时间被认为是异常启动
            env: {
                // 环境参数,当前指定为开发环境
                NODE_ENV: "development",
                PORT: "8888",
            },
            env_production: {
                // 环境参数,当前指定为生产环境
                NODE_ENV: "production", //使用production模式 pm2 start ecosystem.config.js --env production
                PORT: "60001",
            },
            env_test: {
                // 环境参数,当前为测试环境
                NODE_ENV: "test",
            }
        }
    ]
};

pm2进程列表

pm2 list

pm2重启进程

pm2 restart [app-name]

pm2 restart all

pm2停止进程

pm2 stop [app-name]

pm2 stop all

pm2的进程日志

pm2 logs

pm2 logs [app-name]

如下图项目启动成功

本地测试端口60001访问成功


扫描二维码,在手机上阅读