PM2:无法访问应用程序(ERR_CONNECTION_REFUSED)

时间:2021-06-24 04:13:37

标签: node.js express pm2

我有一个在 Node.js 上运行的基于 Express.js 的应用程序。
现在,我想用 pm2 来结束它。为此,我定义了 ecosystem.json

{
    "apps": [
        {
            "env": {
                "NODE_ENV": "development",
                "PORT": "3000"
            },
            "env_production": {
                "NODE_ENV": "production"
            },
            "exec_mode": "cluster",
            "instances": 0,
            "name": "myapp",
            "node_args": [
                "--experimental-json-modules",
                "--gc_interval=100",
                "--max_old_space_size=512",
                "--optimize_for_size"
            ],
            "script": "./src/server/bin/www.mjs",
            "watch": true
        }
    ]
}

在 package.json 中,我指定了一个 scripts 部分:

"scripts": {
    "start": "pm2 start ecosystem.json"
},

在 IDE 中,我已经配置了一个 npm 脚本运行配置:

npm run

现在,当我点击时,pm2 启动并显示正确的运行进程摘要:

App [myapp] launched (4 instances)

但是,当我尝试在浏览器(127.0.0.1:3000localhost:3000)中打开应用程序时,我收到 ERR_CONNECTION_REFUSED,无法访问此站点。

看起来,应用程序不再侦听端口 3000。
如何访问在 pm2 中运行的应用?

附言根据 Nodejs + expressjs - pm2 and forever don't work?,我检查过,我运行 "script": "./src/server/bin/www.mjs",所以我假设 pm2 获得了 bin/www.mjs 的正确路径。

1 个答案:

答案 0 :(得分:0)

更详细地探索案例后,在控制台中我得到 ERR_UNSUPPORTED_ESM_URL_SCHEME。问题的根源在于PM2。问题是当前 "exec_mode": "cluster" 不起作用,而 "exec_mode": "fork" 可以毫无问题地使用。

出于某种原因,此 issue 已被关闭并已解决,而实际上修复程序似乎尚未发布。

相关问题