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> web.config文件中的内容 </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">configuration</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">system.webServer</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 128, 0, 1)"><!--</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)">--></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">handlers</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">/></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">handlers</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">rewrite</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">rules</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">/></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">/></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">rule</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">rules</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">rewrite</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">/></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">defaultDocument</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">files</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</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)">/></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">files</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">defaultDocument</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 128, 0, 1)"><!--</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:
<iisnode
nodeProcessCommandLine="&quot;%programfiles%\nodejs\node.exe&quot;"
interceptor="&quot;%programfiles%\iisnode\interceptor.js&quot;" />
</span><span style="color: rgba(0, 128, 0, 1)">--></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">system.webServer</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">configuration</span><span style="color: rgba(0, 0, 255, 1)">></span></pre>
</div>
<pre>其中<add name="iisnode" path="index.js" verb="*" modules="iisnode" resourceType="Unspecified" <br>requireAccess="Script" preCondition="bitness64" />里的path="index.js"对应node项目入口文件路径</pre>
<pre>nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" 这个是node.exe的安装路径</pre>
<p>5.index.js中端口监听原先写法是 server.listen(8080) 改成 server.listen(process.env.PORT||8080)</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/pony-Bug/p/13029967.html
頁:
[1]