使用 HTTP 上传 G 级的文件之 Node.js 版本(3)

一些其它事情 

其中一件事是,发表上篇文章后我继续研究是为了通过域名碎片实现并行上传到CeleFT功能。域名碎片的原理是访问一个web站点时,让web浏览器建立更多的超过正常允许范围的并发连接。 域名碎片可以通过使用不同的域名(如web1.example.comweb2.example.com)或者不同的端口号(如8000, 8001)托管web站点的方式实现。 

示例中,我们使用不同端口号托管web站点的方式。

我们使用 iisnode 把 Node.js集成到 IIS( Microsoft Internet Information Services)实现这一点。 下载兼容你操作系统的版本 iisnode (x86) 或者  iisnode (x64)。 下载 IIS URL重写包

一旦安装完成(假定windows版Node.js已安装),到IIS管理器中创建6个新网站。将第一个网站命名为CelerFTJS并且将侦听端口配置为8000。

使用 HTTP 上传 G 级的文件之 Node.js 版本


图片7在IIS管理器中创建一个新网站

然后创建其他的网站。我为每一个网站都创建了一个应用池,并且给应用池“LocalSystem”级别的权限。所有网站的本地路径是C:\inetpub\wwwroot\CelerFTNodeJS。

使用 HTTP 上传 G 级的文件之 Node.js 版本


图片8 文件夹层级

我在Release模式下编译了Node.js应用,然后我拷贝了server.js文件、Script文件夹以及node_modules文件夹到那个目录下。

要让包含 iisnode 的Node.js的应用工作,我们需要创建一个web.config文件,并在其中添加如下得内容。

<defaultDocument> 
    <files> 
      <add value="server.js" /> 
    </files> 
  </defaultDocument> 
 
  <handlers> 
    <!-- indicates that the server.js file is a node.js application to be handled by the     
    iisnode module -->     
    <add path="*.js" verb="*" modules="iisnode" /> 
  </handlers> 
 
  <rewrite> 
    <rules> 
      <rule> 
        <match url="/*" /> 
        <action type="Rewrite" url="server.js" /> 
      </rule> 
 
      <!-- Don't interfere with requests for node-inspector debugging -->     
      <rule patternSyntax="ECMAScript" stopProcessing="true"> 
        <match url="^server.js\/debug[\/]?" /> 
      </rule> 
    </rules> 
  </rewrite>

web.config中各项的意思是让iisnode处理所有得*.js文件,由server.js 处理任何匹配"/*"的URL。

使用 HTTP 上传 G 级的文件之 Node.js 版本

图片9 URL重写规则 

如果你正确的做完了所有的工作,你就可以通过:8000浏览网站,并进入CelerFT "Default.html"页面。 

web.config文件被修改以支持如前面post中所解释的大文件的上传,这里我不会解释所有的项。不过下面的web.config项可以改善 iisnode中Node.js的性能。

<span><iisnode</span><span> </span><span>node_env</span><span>=</span><span>"production"</span><span> </span><span>debuggingEnabled</span><span>=</span><span>"false"</span><span> </span><span>devErrorsEnabled</span><span>=</span><span>"false"</span><span> </span><span>nodeProcessCountPerApplication</span><span>=</span><span>"0"</span><span> </span><span>maxRequestBufferSize</span><span>=</span><span>"52428800"</span><span> </span><span>/></span><span><o:p></o:p></span>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8424bf189e6b6de48461f07d119858ae.html