Azure 应用服务与节点进程管理器中断,但适用于节点



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

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

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

容器未响应端口 8080 上的 ping

操作

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

有谁知道可能是什么原因?我宁愿不必在生产环境中针对节点运行应用程序。

更新我刚刚与主管一起尝试了这个,结果相同。看起来流程管理器在这里是一个问题,也许?

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

基本示例:

const LOCAL_APP_PORT = 9300;
server.create({ port: process.env.port || LOCAL_APP_PORT })

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

更新

基于您的最后评论。我认为问题可能是pm2默认守护自己。你能尝试将--no-daemon标志传递给pm2命令吗?

最新更新