node.js - 是否在使用 IIS 托管在 Azure 中的 express.js 上运行的 node.js 应用程序?
问题描述
我正在开发托管在 Azure 中的应用程序。该应用程序是基于 node.js/express.js 的网络应用程序。 它是否在 IIS 服务器上/在 IIS 服务器上运行,因为它托管在 Azure 中?
我的应用程序不使用 iisnode 包。但我想知道它是否天生就在 IIS 上运行,因为它托管在 Azure 中?
另外:据我所知,IIS-express 和 express.js 是两个完全不同的托管 Web 服务器的环境.....?
解决方案
根据您的描述,您似乎在谈论将基于 express.js 的节点应用程序托管到适用于 Windows 的 Azure WebApp。
是的,要在适用于 Windows 的 Azure WebApp 上的 IIS 中托管 Node.js 应用程序,您需要使用 iisnode(本机 IIS 模块)web.config
在 Windows 上的 IIS 中托管带有文件的 node.js 应用程序。有关更多详细信息,您可以参考iisnode wiki
GitHub repo的 wiki 页面Azure/iisnode
以了解 iisnode 是什么,并通过GitHub repoweb.config
的其他 wiki 页面了解如何在 IIS 中使用文件托管它。Using a custom web.config for Node apps
projectkudu/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 模块也不是绝对需要的。
推荐阅读
- javascript - 为什么 Collection.find() 在我的 Meteor 客户端上不起作用?
- python - pygame 椭圆出错了
- python - 如何使用 BeautifulSoup 从网站上抓取特定单元格的文本
- ibm-cloud - 如何配置 IBM Cloud CloudFoundry 应用程序以支持 IPV6
- apache-kafka - org.apache.kafka.connect.errors.DataException:记录默认值的 JSON 无效:null
- javascript - 将行添加到 ASP.NET MVC 表时更新连接的数据库表
- mysql - MySQL 关系查询——JOIN 是答案吗?
- javascript - 如何在 ngFor (Angular 4) 中使用当前和下一个迭代值
- python - 深度 Q 学习 Replay 方法 Memory Vanishing
- amazon-web-services - ELB 间歇性返回 504 GATEWAY_TIMEOUT