Azure应用程序服务与节点进程管理器中断,但与节点一起使用

时间:2019-08-20 06:37:00

标签: node.js azure azure-web-sites azure-web-app-service pm2

我有一个奇怪的问题,我一直在挠头。我有一个快递应用,在生产模式下使用pm2

cross-env NODE_ENV=production pm2 start ./src/index.js

这在本地效果很好。但是,当我将此部署到Azure App服务时,该容器不断崩溃。我可以在日志中看到pm2进程成功启动,但是应用程序随后崩溃并显示以下错误消息

  

容器未响应端口8080上的ping操作

我尝试将WEBSITES_PORT设置为8080,并且尝试使用process.env.PORT并将端口硬编码为8080,但是没有任何效果。

有人知道是什么原因吗?我宁愿不必在生产中的节点上运行应用程序。

更新 我只是用supervisor尝试了一下,结果也一样。看起来过程管理器有些问题,也许在这里吗?

1 个答案:

答案 0 :(得分:1)

每当启动node服务器时,都应指定环境中提供的端口。

基本示例:

const LOCAL_APP_PORT = 9300;

server.create({ port: process.env.port || LOCAL_APP_PORT })

注意:为了调试是否与pm2相关,请尝试使用node命令简单地启动它。

更新

根据您的最新评论。我认为问题可能是pm2在默认情况下自行守护。您可以尝试将--no-daemon标志传递给pm2命令吗?