NestJS Azure WebApp

Posted

技术标签:

【中文标题】NestJS Azure WebApp【英文标题】: 【发布时间】:2021-11-24 23:00:52 【问题描述】:

我正在尝试在 Azure 应用服务中启动一个 nestJS 应用。正在通过 DevOps 管道进行部署。该构建创建了一个dist 文件夹,我正在使用zip deploy 进行部署。容器似乎启动正常,但我在浏览时收到404

Container web##############_1_db5070dc for site web############# initialized successfully and is ready to serve requests.

我正在使用以下方式启动应用程序:pm2 serve /home/site/wwwroot/dist/ --no-daemon > app.log

一切看起来都不错,除了 404

任何帮助都会很棒

【问题讨论】:

【参考方案1】:

为了强调一点,Node.js 应用程序必须使用所有必需的 NPM 依赖项进行部署。当您部署 Git 存储库或启用构建自动化的 Zip 包时,应用服务部署引擎会自动为您运行 npm install --production

当您说使用 pm2 serve 启动应用程序时,我相信您已经在 Azure Portal 的应用程序设置中添加了“启动文件”(启动命令)部分。

对于自定义启动文件,请使用任一支持的扩展名:.js 文件/PM2 文件,扩展名为 .json、.config.js、.yaml 或 .yml

对于 Linux WebApp 上的 Nestjs,请尝试以下流程:

    导航到 src/main.ts 并将端口从 3000 更改为 process.env.PORT 导航到 .gitignore 并从编译的输出部分中删除 dist 在命令行中运行“npm run build”,这将触发 npm 运行 package.json 中的构建脚本并生成一个 dist 文件夹。 通过 git/github 部署应用程序应触发 oryx 构建,它将安装运行应用程序所需的节点模块 在门户中,导航到配置并将启动命令设置为“node dist/main.js”

然后,检查 WebApp 是否工作正常。

如果您使用 Windows 上的应用服务,请将 web.config 文件添加到应用程序的根目录 (Nestjs Web.config)

请参阅此文档以获取更多信息Configure a Node.js app for Azure App Service

【讨论】:

以上是关于NestJS Azure WebApp的主要内容,如果未能解决你的问题,请参考以下文章

如何部署 Nestjs 应用程序(在 Azure 上)?

Azure 静态 Web 应用 API 中的 TypeORM 迁移

是否可以通过 storagenestJS sdk 上传带有元数据的文件?

Cosmos DB:不支持可重试写入。请通过指定禁用可重试写入

Nestjs - @nestjs/graphql GraphQLGatewayModule 总是返回错误请求

NestJS - 如何自我引用 mongoDB 架构 @nestjs/mongoose?