首页 > 解决方案 > 是否在使用 IIS 托管在 Azure 中的 express.js 上运行的 node.js 应用程序?

问题描述

我正在开发托管在 Azure 中的应用程序。该应用程序是基于 node.js/express.js 的网络应用程序。 它是否在 IIS 服务器上/在 IIS 服务器上运行,因为它托管在 Azure 中?

我的应用程序不使用 iisnode 包。但我想知道它是否天生就在 IIS 上运行,因为它托管在 Azure 中?

另外:据我所知,IIS-express 和 express.js 是两个完全不同的托管 Web 服务器的环境.....?

标签: node.jsazureexpressiisserver

解决方案


根据您的描述,您似乎在谈论将基于 express.js 的节点应用程序托管到适用于 Windows 的 Azure WebApp。

是的,要在适用于 Windows 的 Azure WebApp 上的 IIS 中托管 Node.js 应用程序,您需要使用 iisnode(本机 IIS 模块)web.config在 Windows 上的 IIS 中托管带有文件的 node.js 应用程序。有关更多详细信息,您可以参考iisnode wikiGitHub repo的 wiki 页面Azure/iisnode以了解 iisnode 是什么,并通过GitHub repoweb.config的其他 wiki 页面了解如何在 IIS 中使用文件托管它。Using a custom web.config for Node appsprojectkudu/kudu

但是,对于 Windows 的 Azure WebApp 不可以,因为您还可以使用 IIS 作为反向代理服务器,通过 Azure WebApp 指定的默认端口来处理 Node 应用程序,就像Java%HTTP_PLATFORM_PORT%博客所说的那样。Running java jar file to serve web requests on Azure App Service Web Apps但一般来说,这不是推荐的方式。

同时,对于在其他 Azure 服务上托管 Node 应用程序,例如 Azure WebApp for Liunx、Azure VM 或 Azure Container 服务,这些基于 Linux 的服务不需要 IIS,因此 iisnode 模块也不是绝对需要的。


推荐阅读