在 Digital Ocean 上使用 pm2 启动多个 Nuxtjs 项目

Start multiple Nuxtjs projects with pm2 on Digital Ocean

我在使用 nginx 代理的 Digital Ocean Droplet 中有几个项目,我想用 pm2 启动所有这些项目,我看到我可以用一个包含名称和脚本的 .json 文件来实现,但它似乎没有用,这就是我所做的:

我的项目目录:

项目 1

项目 2

pm2-apps.json

pm2-apps.json

{
  "apps": [
    {
      "name": "project1",
      "script": "./project1/package.json"
    },
    {
      "name": "project2",
      "script": "./project2/package.json"
    },
  ]
}

然后我运行

pm2 start pm2-apps.json

我得到

但随后我输入 url,该项目似乎没有正确安装,如果我 运行 每一个与项目文件夹中的 pm2 start npm -- start 分开,它就可以工作。

必须对此进行测试,并发现您可能遇到的几个问题,前提是您已正确设置 nginx。

我必须将文件更改为以下内容:

{
  "apps": [
    {
      "name": "project1",
      "cwd": "./project1",
      "script": "/usr/bin/npm",
      "args": "run dev"
    },
    {
      "name": "project2",
      "cwd": "./project2",
      "script": "/usr/bin/npm",
      "args": "run dev"
    }
  ]
}

奇怪的是 "script": "npm", 和 SIGINT'ing 一样不够,我可以从使用 pm2 monit

中看到

然后在每个项目中,我更改了 nuxt 端口:

nuxt.config.js

  ...
  server: {
    port: 3001, // project1
    host: '0.0.0.0', // default: localhost
  },
  ...

  ...
  server: {
    port: 3002, // project2
    host: '0.0.0.0', // default: localhost
  },
  ...

然后清除 pm2.. pm2 delete all

然后 运行 从文件夹中:

pm2 start pm2-apps.json

然后两个应用程序都可以正常启动..