iisnode运行koa2项目

前言

前段时间在研究koa2+mongodb,捣鼓完一个项目以后,就是发布的问题了。通常来讲,nodejs的项目,推荐开发用nodemon,生产用pm2。二者均可以监听文件变动重启node项目,而pm2则更为强大,更拥有性能监控,日志,负载均衡等等高级功能。node

在linux服务器上,咱们通常会选择使用pm2启动,而后使用nginx转发。而在windows上,咱们首选的则是这个iisnode啦,不为别的,就由于这货是iis插件,使用更方便,也可以监听文件变动自动重启node项目,至于做者宣称的其余各类优势,咱们就不用管了,毕竟真要说性能的话,我在stackoverflow上面还见过吐槽iisnode性能差的问题呢。linux

准备工做

  • iis7.x/8.xnginx

    请注意不要低于iis7,至于iis express/WebMatrix,iisnode也是支持的git

  • nodejsgithub

    下载并安装nodejs的最新windows版本web

安装url-rewrite

由于须要用到路由重写,因此必须为iis安装URL Rewrite插件,下载地址为:
https://www.iis.net/downloads/microsoft/url-rewritemongodb

安装iisnode

https://github.com/Azure/iisnodeexpress

直接在github项目的release中下载最新版,咱们直接下载iisnode-full系列就ok了。
这货最先是tjanczuk私人开发的,后面捐赠给微软了,旧地址为
https://github.com/tjanczuk/iisnodewindows

初步使用

  • 具体安装步骤就不说了,直接让他下一步下一步安装完,默认安装路径为:C:
    \Program Files\iisnode服务器

  • 而后咱们直接运行setupsamples.bat文件,它会自动在default web site中添加一个node项目
  • 此时咱们访问http://localhost/node,若是能看到下面的页面就说明大功告成了

    部署koa2项目

    仍是老样子建立站点,而后将路径指向koa2项目的根路径,只须要添加一个web.config文件,填入如下内容:
<configuration>
   <system.webServer>

     <handlers>
       <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
     </handlers>

     <rewrite>
       <rules>
         <rule name="app">
           <match url="/*" />
           <action type="Rewrite" url="app.js" />
         </rule>
       </rules>
     </rewrite>

     <security>
       <requestFiltering>
         <hiddenSegments>
           <add segment="node_modules" />
         </hiddenSegments>
       </requestFiltering>
     </security>    
     
     <iisnode
      nodeProcessCommandLine="&quot;D:\Program Files\nodejs\node.exe&quot;" 
      interceptor="&quot;%programfiles%\iisnode\interceptor.js&quot;" />
     
   </system.webServer>
 </configuration>

请注意最后一段,我在里面指明了nodejs的执行路径,由于他的默认配置是指向C盘的,而我安装时安装在了D盘,因此会报一个没法执行nodejs的错误。
全部的可配置选项,在sample中也有列出来:
https://github.com/Azure/iisnode/blob/master/src/samples/configuration/web.config

相关文章
相关标签/搜索