我想知道如何在 Windows 10、Windows Server 2012 和更新版本上部署我的 node.js
应用程序(它使用 Koa
)。
在 Internet 上,我看到了使用 iisnode
的旧技巧,但同时我看到人们担心开发人员对许多重要问题(与 iisnode
相关)没有答案,并且很长时间没有对 iisnode
代码源进行更改。 :(
在 Windows 10 和 Windows Server 2012 及更高版本上托管 node.js
应用程序的现代方法是什么?
我将不胜感激链接到分步文章。
最佳答案
有几种方法可以在 Windows 上为生产工作负载运行 NodeJS。
首先要了解 Windows 内置(内核模式!)支持称为 HTTP.sys
的 HTTP 服务器,IIS 和其他 Web 服务器使用它来提供 HTTP 流量,而不是简单地打开端口 80 上的监听套接字(这就是 Microsoft 的 IIS在 1990 年代后期的 Web 服务器基准测试中击败了 Apache)。
您的选择是:
HTTP.sys
。 HTTP.sys
后面运行 NodeJSiisnode
库的作者还为 NodeJS 编写了另一个名为 httpsys
的库(因为在 IIS 后面运行使用了许多与在 HTTP.sys
后面运行相同的技术): https://github.com/tjanczuk/httpsys - 不幸的是它已经过时了,但确实没有太多代码所以你可能可以自己破解它以使用最新版本的 Node.js。这是开源的要点之一! (“不要提示,解决它!”) iisnode
分支在 IIS 后面运行 NodeJS:iisnode
被放弃了,但微软实际上接管了所有权并将其 fork 给了 https://github.com/Azure/iisnode,它似乎确实得到了积极维护 - 微软在维护它方面有既得利益,因为微软想从世界上在 Azure 上运行其应用程序赚钱,无论如何他们使用的任何语言、平台或操作系统。 nginx
端口后面运行 NodeJSnginx
是轻量级反向代理相反)。请参阅此处:https://www.iis.net/downloads/microsoft/application-request-routing 以及此处的分步说明:https://dev.to/petereysermans/hosting-a-node-js-application-on-windows-with-iis-as-reverse-proxy-397b 关于node.js - 在 Windows 10 和 Windows Server 2012 及更新版本上托管 `node.js` 应用程序的现代方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57352538/