风月流沙 發表於 2020-6-2 11:00:00

iis服务器上部署node.js解决方法

<p>以下所有内容都是在iis服务器配置成功的基础上</p>
<p>1. 安装 node.js,官网下载 node.exe(用express的再安装express),这步略过。</p>
<p>2. 安装 iisnode,https://github.com/tjanczuk/iisnode/wiki/iisnode-releases,IIS运行 node.js 的关键。</p>
<p>3. 安装 url-rewrite,http://www.iis.net/downloads/microsoft/url-rewrite</p>
<p>4. 将项目放到指定文件夹下,在这个文件夹下新建一个web.config文件。</p>
<p>&nbsp; &nbsp; &nbsp;web.config文件中的内容&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">configuration</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">system.webServer</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

    <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)"> indicates that the hello.js file is a node.js application
    to be handled by the iisnode module </span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>

    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">handlers</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">add </span><span style="color: rgba(255, 0, 0, 1)">name</span><span style="color: rgba(0, 0, 255, 1)">="iisnode"</span><span style="color: rgba(255, 0, 0, 1)"> path</span><span style="color: rgba(0, 0, 255, 1)">="index.js"</span><span style="color: rgba(255, 0, 0, 1)"> verb</span><span style="color: rgba(0, 0, 255, 1)">="*"</span><span style="color: rgba(255, 0, 0, 1)"> modules</span><span style="color: rgba(0, 0, 255, 1)">="iisnode"</span><span style="color: rgba(255, 0, 0, 1)"> resourceType</span><span style="color: rgba(0, 0, 255, 1)">="Unspecified"</span><span style="color: rgba(255, 0, 0, 1)"> requireAccess</span><span style="color: rgba(0, 0, 255, 1)">="Script"</span><span style="color: rgba(255, 0, 0, 1)"> preCondition</span><span style="color: rgba(0, 0, 255, 1)">="bitness64"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">handlers</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
   
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">rewrite</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">rules</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">rule </span><span style="color: rgba(255, 0, 0, 1)">name</span><span style="color: rgba(0, 0, 255, 1)">="all"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                  <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">match </span><span style="color: rgba(255, 0, 0, 1)">url</span><span style="color: rgba(0, 0, 255, 1)">="/*"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
                  <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">action </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="Rewrite"</span><span style="color: rgba(255, 0, 0, 1)"> url</span><span style="color: rgba(0, 0, 255, 1)">="index.js"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">rule</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">rules</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">rewrite</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>   
   
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">iisnode
      </span><span style="color: rgba(255, 0, 0, 1)">node_env</span><span style="color: rgba(0, 0, 255, 1)">="%node_env%"</span><span style="color: rgba(255, 0, 0, 1)">
      nodeProcessCountPerApplication</span><span style="color: rgba(0, 0, 255, 1)">="1"</span><span style="color: rgba(255, 0, 0, 1)">
      maxConcurrentRequestsPerProcess</span><span style="color: rgba(0, 0, 255, 1)">="1024"</span><span style="color: rgba(255, 0, 0, 1)">
      maxNamedPipeConnectionRetry</span><span style="color: rgba(0, 0, 255, 1)">="100"</span><span style="color: rgba(255, 0, 0, 1)">
      namedPipeConnectionRetryDelay</span><span style="color: rgba(0, 0, 255, 1)">="250"</span><span style="color: rgba(255, 0, 0, 1)">
      maxNamedPipeConnectionPoolSize</span><span style="color: rgba(0, 0, 255, 1)">="512"</span><span style="color: rgba(255, 0, 0, 1)">
      maxNamedPipePooledConnectionAge</span><span style="color: rgba(0, 0, 255, 1)">="30000"</span><span style="color: rgba(255, 0, 0, 1)">
      asyncCompletionThreadCount</span><span style="color: rgba(0, 0, 255, 1)">="0"</span><span style="color: rgba(255, 0, 0, 1)">
      initialRequestBufferSize</span><span style="color: rgba(0, 0, 255, 1)">="4096"</span><span style="color: rgba(255, 0, 0, 1)">
      maxRequestBufferSize</span><span style="color: rgba(0, 0, 255, 1)">="65536"</span><span style="color: rgba(255, 0, 0, 1)">
      watchedFiles</span><span style="color: rgba(0, 0, 255, 1)">="*.js;node_modules\*;routes\*.js;views\*.jade"</span><span style="color: rgba(255, 0, 0, 1)">
      uncFileChangesPollingInterval</span><span style="color: rgba(0, 0, 255, 1)">="5000"</span><span style="color: rgba(255, 0, 0, 1)">
      gracefulShutdownTimeout</span><span style="color: rgba(0, 0, 255, 1)">="60000"</span><span style="color: rgba(255, 0, 0, 1)">
      loggingEnabled</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)">
      logDirectory</span><span style="color: rgba(0, 0, 255, 1)">="iisnode"</span><span style="color: rgba(255, 0, 0, 1)">
      debuggingEnabled</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)">
      debugHeaderEnabled</span><span style="color: rgba(0, 0, 255, 1)">="false"</span><span style="color: rgba(255, 0, 0, 1)">
      debuggerPortRange</span><span style="color: rgba(0, 0, 255, 1)">="5058-6058"</span><span style="color: rgba(255, 0, 0, 1)">
      debuggerPathSegment</span><span style="color: rgba(0, 0, 255, 1)">="debug"</span><span style="color: rgba(255, 0, 0, 1)">
      maxLogFileSizeInKB</span><span style="color: rgba(0, 0, 255, 1)">="128"</span><span style="color: rgba(255, 0, 0, 1)">
      maxTotalLogFileSizeInKB</span><span style="color: rgba(0, 0, 255, 1)">="1024"</span><span style="color: rgba(255, 0, 0, 1)">
      maxLogFiles</span><span style="color: rgba(0, 0, 255, 1)">="20"</span><span style="color: rgba(255, 0, 0, 1)">
      devErrorsEnabled</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)">
      flushResponse</span><span style="color: rgba(0, 0, 255, 1)">="false"</span><span style="color: rgba(255, 0, 0, 1)">
      enableXFF</span><span style="color: rgba(0, 0, 255, 1)">="false"</span><span style="color: rgba(255, 0, 0, 1)">
      configOverrides</span><span style="color: rgba(0, 0, 255, 1)">="iisnode.yml"</span><span style="color: rgba(255, 0, 0, 1)">
      nodeProcessCommandLine</span><span style="color: rgba(0, 0, 255, 1)">="C:\Program Files\nodejs\node.exe"</span><span style="color: rgba(255, 0, 0, 1)">
      promoteServerVars</span><span style="color: rgba(0, 0, 255, 1)">="REMOTE_ADDR"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">defaultDocument</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">files</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">add </span><span style="color: rgba(255, 0, 0, 1)">value</span><span style="color: rgba(0, 0, 255, 1)">="index.js"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">files</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">defaultDocument</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      
    <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)">   
   
    One more setting that can be modified is the path to the node.exe executable and the interceptor:
   
    &lt;iisnode
      nodeProcessCommandLine="&amp;quot;%programfiles%\nodejs\node.exe&amp;quot;"
      interceptor="&amp;quot;%programfiles%\iisnode\interceptor.js&amp;quot;" /&gt;
   
    </span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>

<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">system.webServer</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">configuration</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<pre>其中&lt;add name="iisnode" path="index.js" verb="*" modules="iisnode" resourceType="Unspecified" <br>requireAccess="Script" preCondition="bitness64" /&gt;里的path="index.js"对应node项目入口文件路径</pre>
<pre>nodeProcessCommandLine="C:\Program Files\nodejs\node.exe"   这个是node.exe的安装路径</pre>
<p>5.index.js中端口监听原先写法是&nbsp;server.listen(8080) 改成 server.listen(process.env.PORT||8080)</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/pony-Bug/p/13029967.html
頁: [1]
查看完整版本: iis服务器上部署node.js解决方法