在Windows 10和Windows Server 2012及更高版本上托管'node.js'应用程序的现代方式是什么?
我想知道如何在Windows 10、Windows server 2012及更高版本上部署我的在Windows 10和Windows Server 2012及更高版本上托管'node.js'应用程序的现代方式是什么?,node.js,iis,koa,Node.js,Iis,Koa,我想知道如何在Windows 10、Windows server 2012及更高版本上部署我的node.js应用程序(它使用Koa) 在互联网上,我看到了使用iisnode的老技巧,但与此同时,我看到人们担心开发人员无法回答许多重要问题(与iisnode相关),而且很长一段时间没有对iisnode代码源进行更改( 在Windows 10和Windows Server 2012及更高版本上托管node.js应用程序的现代方式是什么 如果能链接到这篇分步文章,我将不胜感激。有几种方法可以在Windo
node.js
应用程序(它使用Koa
)
在互联网上,我看到了使用iisnode
的老技巧,但与此同时,我看到人们担心开发人员无法回答许多重要问题(与iisnode
相关),而且很长一段时间没有对iisnode
代码源进行更改(
在Windows 10和Windows Server 2012及更高版本上托管node.js
应用程序的现代方式是什么
如果能链接到这篇分步文章,我将不胜感激。有几种方法可以在Windows上为生产工作负载运行NodeJS 首先需要了解的是,Windows对名为
HTTP.sys
的HTTP服务器具有内置(内核模式!)支持,IIS和其他web服务器使用这些服务器来服务HTTP流量,而不是简单地在端口80上打开侦听套接字(这就是微软的IIS在20世纪90年代末的web服务器基准测试中击败Apache的方式)
你的选择是:
- 将节点直接暴露到端口80/443
- 这是一种最简单的方法,虽然有许多缺点。但是如果您不需要在服务器上运行不同的多个应用程序和非NodeJS代码,那么这是一个有效的选项。请记住先禁用HTTP.sys
- 在HTTP.sys之后运行NodeJS
库的作者还为NodeJS编写了另一个名为iisnode
的库(因为在IIS后面运行与在httpsys
后面运行使用许多相同的技术):-不幸的是,它已经过时了,但实际上没有太多的代码,因此您可能可以自己破解它以使用最新版本的Node。这是开源的要点之一!(“不要抱怨,修复它!”)HTTP.sys
- 使用Microsoft的
,在IIS后面运行NodeJS:iisnode
- 虽然最初的
被放弃,但微软实际上接管了所有权,并将其交给了似乎仍在积极维护的公司,而微软在维护它方面有着既得利益,因为微软希望在Azure上运行其应用程序,从世界上赚钱,而不管它们使用何种语言、平台或操作系统唱吧iisnode
- 虽然最初的
- 在Windows的
端口后运行NodeJSnginx
- 不建议在Windows上使用,因为其作者说它的性能很差:
- 最后一个选项(可能是最适合您的情况)是按原样在Windows上运行NodeJS,并使用IIS的应用程序请求路由(ARR)功能:
- ARR使IIS能够充当(复杂的)反向代理(与Linux上的life不同,在Linux上,
是一个轻量级的反向代理)。请参见此处:这里有逐步说明:nginx
- ARR使IIS能够充当(复杂的)反向代理(与Linux上的life不同,在Linux上,
node.js
应用程序。这是在Windows上运行NodeJS的现代选项的一个很好的分类。我发现大多数东西都过时了或不适用于Windows。谢谢!还想知道PM2是否适合这个列表中的某个地方。哇,别提最后关于PM2的评论,我看到你发布的最后一个说明链接实际上使用了PM2。太好了!