
 主 题 
一、操作
1.nuxt执行打包命令 npm run build 
2.将build输出的文件夹 .output 的所有内容上传到服务器  /blog/nuxt-home 中
3.执行 npm install pm2 -g 安装pm2并配置 ecosystem.config.js
        
            
            
              javascript
              
              
              
            
          
            // 配置pm2
  module.exports = {
    apps: [
      {
        name: "BlogHomeNuxt",
        exec_mode: "cluster",
        instances: "2",
        script: "output/server/index.mjs",
        args: "", // 传递给脚本的参数
        watch: true, // 开启监听文件变动重启
        ignore_watch: ["node_modules", "public", "logs"], // 不用监听的文件
        exec_mode: "fork",// 自家主机window cluster_mode 模式下启动失败
        instances: "2", // 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", // 应用运行少于时间被认为是异常启动
        max_restarts: 30, // 最大异常重启次数
        restart_delay: 60, // 异常重启情况下,延时重启时间
        env: {
          // 环境参数,当前指定为开发环境
          NODE_ENV: "development",
          PORT: "5050",
        },
        env_production: {
          // 环境参数,当前指定为生产环境
          NODE_ENV: "production", //使用production模式 pm2 start ecosystem.config.js --env production
          PORT: "5050",
        },
        env_test: {
          // 环境参数,当前为测试环境
          NODE_ENV: "test",
        },
      },
    ],
  };4.编写 start-nuxt.sh 脚本
        
            
            
              shelll
              
              
              
            
          
            #!/bin/bash
  
  BUILD_ID=DONTKILLME
  
  echo "pm2 starting"
  
  pm2 start ecosystem.config.js --env production
  
  echo "pm2 started"5.在 /blog/nuxt-home下执行 sh start-nuxt.sh 即可 成功使用pm2启动nuxt服务
6.找到nginx.conf文件,修改默认访问网站配置
        
            
            
              shelll
              
              
              
            
          
            # 博客前端
  location / {
     # root /blog/home/;
     # index /index.html;
     # try_files $uri $uri/  /index.html; 
     proxy_pass http://localhost:5050/;
  }7.设置服务器重启自动启动服务
- 查看当前线程 pm2 list
- 保存当前线程 pm2 save
- 设置服务器开机自启 pm2 startup
常用pm2命令
            
            
              shell
              
              
              
            
          
          // --name 别名
pm2 start main --name zone-server二、相关注意事项
- 目前nuxt3服务器打包会造成内存溢出导致卡死
- pm2部署- nestjs服务时,有用到- express-session时不能使用多核部署,防止多核时- session不同步重写,导致首次访问- session不存在问题。
- pm2重启- blog-server一直- launching执行- pm2 update重新启动就行

全部评论(18)