在Windows 10和Windows Server 2012以及更新的Windows.js'应用程序上托管“ Node



我想知道如何在Windows 10,Windows Server 2012和更新版本上部署node.js应用程序(使用Koa(。

在Internet中,我看到了使用iisnode的旧提示,但与此同时,我看到人们担心开发人员对许多重要问题(与iisnode有关(没有答案,并且长时间不会更改iisnode代码源。:(

在Windows 10和Windows Server 2012上托管node.js应用程序以及更新的现代方法是什么?

我将感谢链接到分步文章。

有几种方法可以在Windows上运行nodejs进行生产工作负载。

首先要了解Windows具有内置(内核模式!(支持HTTP服务器的支持HTTP.sys,这一点很重要Microsoft的IIS如何在1990年代后期的网络服务器基准中击败Apache。

您的选择是:

  • 直接暴露于端口80/443
    • 这是最简单的方法,尽管有许多缺点。但是,只要您不需要在服务器上运行不同的多个应用程序和非NODEJS代码,那么这是一个有效的选项。只记得首先禁用HTTP.sys
  • HTTP.sys后面运行nodejs
    • iisnode库的作者还写了另一个名为 httpsys for nodejs的lib(因为在IIS后面运行使用与HTTP.sys后面运行的许多技术(:https://github.com/tjanczuk/httpsys-不幸的是,它不含它。约会,但确实没有太多的代码,因此您可以自己破解它来使用最新版本的节点。这是开源的点之一!("不要抱怨,修复它!"(
  • 用Microsoft的 iisnode fork在IIS后面运行nodejs:

    • 虽然原来的iisnode被放弃了,但微软实际上接管了所有权,并将其分配给https://github.com/azure/iisnode,它似乎确实是积极维护的 - 而且Microsoft在维持它方面具有既得利益,因为Microsoft想要它无论他们使用哪种语言,平台或操作系统,都可以从世界上赚钱。
  • 在Windows的nginx端口后面运行nodejs

    • 不推荐在Windows上,因为它自己的作者说其性能差:http://nginx.org/en/docs/windows.html
  • 最后一个选项(这可能是您情况的最佳选择(是在Windows AS-IS上运行Nodejs并使用IIS的应用程序请求路由(ARR(功能:

    • ARR使IIS能够充当(复杂的(反向曲线(与Linux上的Linux相反,nginx是A 轻量级反向曲线(。请参阅此处:https://www.iis.net/downloads/microsoft/application-request-routing with stemby-step指令: - windows-with-iis-as-as-as reverse-proxy-397b