利用iisnode模块,让你的Node.js应用跑在Windows系统IIS中
2021-04-26 03:28
标签:问题 false source 默认 mod 最大连接数 连接 自动 reac 最近比较喜欢用Node.js做一些简单的应用,一直想要部署到生产环境中,但是手上只有一台windows server 2008服务器,并且已经开启了IIS服务,运行了很多.Net开发的网站,80端口已经被占用了。 起初是想用nginx来作为web服务器监听80端口,将所有web访问转发到对应的IIS和node,但由于已运行的老站点众多,如此配置实在需要大量的精力,于是突发奇想,能不能直接利用IIS来托管node服务呢?进过一番搜索之后发现了iisnode模块,可以很轻松的解决这个问题。下面就把实操步骤分享出来,方便有同样需求的朋友参考。 首先iisnode是一个IIS Module加载到IIS以后,就可以在任意站点中通过Web.config指定某些路径转交给node程序执行,通过参数配置,可以设置启动的node进程个数,以及最大连接数等。并且可以监听站点文件变化,自动重启node服务等功能。 iisnode代码托管在github上,如果不想自己编译,可以直接通过以下链接下载适合自己的版本。 https://github.com/tjanczuk/iisnode/wiki/iisnode-releases 比如我的服务器是windows server 2008 64位系统,选择下载“iisnode for iis 7/8 (x64)”安装程序 只要版本正确,安装过程并没有需要特别注意的,自己根据提示一步一步完成即可。 之后还需要安装一下IIS的URL Rewrite模块(需要利用rewrite功能转发相关的请求交给node服务来执行) 下载地址:http://www.iis.net/downloads/microsoft/url-rewrite 软件全部安装完成之后,在IIS中新建网站,将目录指定到我们的nodejs应用目录即可,最后关键的一步,在目下新建web.config配置文件并写入如下的内容: 作用是将当前目录的所有请求都利用iisnode模块转发到node服务,并指定了node的执行目录。其中的app.js就是node应用的入口文件(可以按照自己的目录结构进行修改)。 一切就绪,现在打开浏览器访问网站,就可以看到效果了。 如果运行的时候出现如下错误: 通过cmd运行如下代码即可解决: 其中的handlers是报错的节点名字。 另外如果是Express的项目,建议把web.config文件改为如下内容 并新建程序入口文件launch.js 代码如下: 如此操作的原因请参考博文:http://heeroluo.net/article/detail/118/suffering-from-iisnode 利用iisnode模块,让你的Node.js应用跑在Windows系统IIS中 标签:问题 false source 默认 mod 最大连接数 连接 自动 reac 原文地址:http://www.cnblogs.com/aieceo/p/7906640.html500.19
配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
#!/usr/bin/env node
require(‘./bin/www‘);
上一篇:C#三层架构
文章标题:利用iisnode模块,让你的Node.js应用跑在Windows系统IIS中
文章链接:http://soscw.com/index.php/essay/79648.html