容器 stockmgmt_0_3b1a53ce 未响应端口 8080 上的 HTTP ping,站点启动失败。请参阅容器日志进行调试。对于 Node.js

问题描述 投票:0回答:1

“我正在 Azure 应用服务上使用 PM2 部署 Node.js 应用程序。应用程序似乎启动成功,但端口 8080 上的 HTTP 运行状况检查失败,并且站点无法启动。”

“应用程序应响应端口 8080 上的 HTTP ping,从而允许应用服务成功启动。”

node.js azure deployment pm2
1个回答
0
投票

我创建了简单的 Nodejs 应用程序,并将 PM2 部署到 Azure 应用程序服务。

即使我在 server.js 和 Ecosystem.config.js 中硬编码端口值时也遇到了同样的错误。

Azure 应用服务期望应用程序侦听

PORT environment variable
指定的端口。

我定义

port
值如下

const port = process.env.PORT || 8080;

服务器.js

const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
app.get('/', (req, res) => {
    res.send('Hello, World! Application is running.');
});
app.listen(port, () => {
    console.log(`Server is listening on port ${port}`);
});

ecosystem.config.js:

module.exports = {
    apps: [
      {
        name: "nodejs-app",
        script: "./server.js",
        env: {
          PORT: 8080
        },
        env_production: {
          NODE_ENV: "production",
          PORT: process.env.PORT 
        }
      }
    ]
  };

成功部署应用程序后,我在 Azure Web App 中的“配置”->“启动命令”下设置了以下启动命令。

pm2 start ecosystem.config.js --no-daemon

enter image description here

Azure Web 应用程序输出

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.