有机化学、化学信息学、生物化学、生物信息学、机器学习、深度学习、药物设计、网站建设关注我!Bilibili
前端项目使用NextJS编写,需要代理服务
该文章默认项目路径为:/home/aiochem/client,请自行更改
# 全局安装pm2
sudo npm install -g pm2
# 安装日志轮转
pm2 install pm2-logrotate在前端的项目根目录(package.json同级),新建ecosystem.config.js文件
module.exports = {
  apps: [
	{
      name: 'aiochem-client',  // 在 PM2 中的进程名
      cwd: '/home/aiochem/client', // ← 指定nodeJS项目根目录
      script: 'npm',  // 启动命令
      args: 'start',
      // --- 如果你直接用 node 启动,请改成下面两行并删除 script/args:
      //script: 'server.js',   // 入口文件
      //args: '',               // 无额外参数
      // —— 负载均衡(Cluster Mode)——
      exec_mode: 'cluster',     // cluster 模式:开启多进程
      instances: 'max',         // 根据 CPU 核数自动 fork 等量子进程
      exec_mode: 'fork',  // 单进程
      instances: 1,
      env: {
        NODE_ENV: 'production',  // 指定生产环境
        HOST: '0.0.0.0',
        PORT: 3000
      },
      // PM2 默认会写到 ~/.pm2/logs/下,也可在这里自定义路径:
      error_file: '/home/aiochem/logs/client/web-aiochem-err.log',
      out_file: '/home/aiochem/logs/client/web-aiochem-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm Z'
    },
  ]
};这样就配置完成了,一般项目是本地build以后,把.next文件夹上传进来
项目目录如下:源码可以不放在生产环境的服务器内,几个配置文件和静态资源需要放进来。

每天凌晨 0 点轮转、保留最近 7 天、大小超过 100 MB 也轮转、并压缩旧文件
pm2 set pm2-logrotate:rotateInterval '0 0 * * *'
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:max_size 100M
pm2 set pm2-logrotate:compress true# 进入项目目录
cd /home/aiochem/client
# 启动所有在 ecosystem.config.js 定义的应用
pm2 start
# 保存当前进程列表,以便重启机器时可自动恢复
pm2 save
# 生成开机自启脚本(输出一行 systemd/startup 命令,复制并执行它)
pm2 startup在本机构建项目后,压缩.next文件夹,上传到服务器即可。
unzip的命令
unzip -o /home/aiochem/version/.next001.zip -d /home/aiochem/client/-o 参数表示直接覆盖
-d 指定覆盖位置
重启项目
然后重新load项目,这里的your_prj_name是配置中写的那个name参数,自行替换
pm2 reload your_prj_namepm2也可以代理其他服务,比如django、celery等,写对应的配置就可以(不推荐代理数据库)
使用--only参数可以仅启动单个任务
pm2 start ecosystem.config.js --only aiochem-server没有推荐的文章...
没有对应的文章...