这是在 Windows 64 位服务器上将 Node.js 与 IIS7 集成的提示。以下提示还解决了 iisnode 的一些性能不佳问题,并演示了如何使用 Node.js Native Extensions。
概括:
创建一个 专用于 node.js的新的非托管集成 32 位应用程序池。其他应用程序不应使用此池。
这也适用于 64 位,但由于 SQLite 包装,一些 node.js 本机扩展(如 Coconut2D)需要 32 位。如果您不使用本机扩展,那么您可以一直使用 64 位!
下载:iisnode-core-iis7-v0.1.19.0-x64.msi。
使用以下命令安装它:msiexec /i iisnode-core-iis7-v0.1.19.0-x64.msi WOW=1. 这将在 64 位机器上安装 32 位版本的 iisnode。请注意,iisnode.dll将安装在C:\Program Files (x86)\iisnode\iisnode.dll.
下载 32 位版本的 node.js(例如node-v0.12.0-x86.msi)并将其安装在C:\nodejs
创建新的应用程序池
名称:node.js 管理管道模式:集成
.NET Framework 版本:无托管代码 启用 32 位应用程序:True 身份:管理员
假设您的Node.js 服务器脚本文件是server.js. 转到 web 文件夹并创建文件node_start.cmd。在命令文件中,您应该更改当前路径wwwroot并使用您的server.js文件启动 node.js。您应该使用双引号路径。
C: cd "C:\HostingSpaces\...\wwwroot" "C:\nodejs\node.exe" "C:\HostingSpaces\...\wwwroot\server.js"
在你server.js确保你有process.env.PORT
var http = require('http');
http.createServer(function (req, res) {
......你的代码在这里......
}).listen(process.env.PORT);
(可选)如果您使用任何 node.js 本机扩展,例如 Coconut2D、SQLite、Cairo 或 WebKit 模块,您必须复制*.node文件wwwroot\node_modules夹中的文件和 DLL 。确保您还设置了 NTFS 安全性以允许执行这些文件或提升应用程序池以模拟管理员。要加载本机扩展,请使用require()如下所示。
var http = require('http');
var Coconut2D = require("Coconut2D.node");
http.createServer(function (req, res) {
......你的代码在这里......
}).listen(process.env.PORT);
将以下内容web.config放在您的 Web 根目录中(例如C:\HostingSpaces\...\wwwroot)。这将使 IIS7 能够处理任何非节点文件,例如图像、静态 html 文件和 xml 文件,并让 node.js 只处理它自己的服务器端脚本。
让 IIS 处理静态文件并在 node.js 上并排运行服务器端脚本是一种强烈推荐的做法,它确实可以提高您网站的性能。
在这个例子中,我通过使用重写规则来处理.asp文件iisnode。替换*.asp*为您的 node.js 服务器脚本扩展(例如*.njs*)。请注意,通配符模式中没有根斜杠;这很重要,也是*模式末尾的最后一个。
Name: node.js Managed pipeline mode: Integrated
| 归档时间: |
|
| 查看次数: |
2754 次 |
| 最近记录: |