【问题标题】:PM2: app can’t be reached (ERR_CONNECTION_REFUSED)PM2:无法访问应用程序 (ERR_CONNECTION_REFUSED)
【发布时间】:2021-09-07 13:58:38
【问题描述】:

我有一个在 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-section:

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

在 IDE 中,我配置了 npm 脚本运行配置:

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

但是,当我尝试在浏览器(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 的正确路径。

【问题讨论】:

  • 配置看起来不错。尝试将应用程序最终监听的端口输出到控制台,并通过“pm2日志”查看。

标签: node.js express pm2


【解决方案1】:

在更详细地研究了这个案例之后,在控制台中我得到了ERR_UNSUPPORTED_ESM_URL_SCHEME。问题的根源在于PM2。问题是目前"exec_mode": "cluster"不起作用,而"exec_mode": "fork"可以正常使用。

由于某种原因,这个issue 已被关闭作为已解决,而实际上该修复似乎尚未发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多