写点什么

使用 IIS 托管运行 Node.js 应用程序

  • 2011-08-29
  • 本文字数:1114 字

    阅读完需:约 4 分钟

Node.js 是目前十分流行,发展势头迅猛的服务器程序开发技术。Node.js 使用 JavaScript 语言,运行在 V8 引擎之上,之前一直有 *nix 下的版本,而在微软的支持下,也逐渐提供了对 Windows 的支持。而由 Tomasz Janczuk 开发的 iisnode 项目则是一个 IIS 原生模块,可以将 Node.js 程序托管在 IIS 上,由 IIS 进行 Node.js 进程管理。

Tomaz Janczuk在博客上介绍了 iisnode 项目,并阐述了使用 IIS 托管 Node.js 应用程序,相对于直接使用 node.exe 的优势:

  • 进程管理:iisnode 模块负责管理 node.exe 进程的生命周期,这提高了整体的可靠性,无须自行实现启动,停止或是进程监控等基础架构。
  • 利用多核服务器:node.exe 是单线程的程序,只能使用一个 CPU 核心。而 iisnode 模块会为每个应用程序创建多个 node.exe 进程,并将 HTTP 流量平衡至这些进程上。这样开发人员无须自行实施这方面的基础架构便可以充分利用多核 CPU 的能力。
  • 自动更新:iisnode 模块会在 Node.js 应用程序更新时(例如修改了脚本文件)自动回收 node.exe 进程。已有的请求会等待旧有代码执行完毕后,并自动切换至新版本的代码。
  • 使用 HTTP 访问日志:iisnode 模块提供了一个使用 HTTP 形式访问 Node.js 日志(例如使用 console.log 输出的信息)的机制。这十分有利于调试远程部署的 Node.js 程序。
  • 与不同类型的请求一起工作:利用 iisnode 模块与 IIS 集成之后,就可以在一个网站中使用 Node.js 处理部分请求,而把另外一些类型的请求(例如静态文件)交给 IIS 本身,甚至 ASP.NET 程序来使用。这让开发人员可以方便地选择最合适的方式来处理不同资源,或是逐步迁移应用程序。
  • 几乎无须改变 Node.js 程序代码:使用 iisnode 模块托管 Node.js 程序时几乎无须修改程序代码。一般来说,只需要把监听地址修改为 iisnode 提供的 process.env.PORT 环境变量即可。
  • 集成管理体验:iisnode 模块与 IIS 配置系统完全集成,可以使用与其他 IIS 组件相同的方式或是工具来配置和维护 Node.js 程序。

Tomaz 同时提到,使用 IIS 来托管 Node.js 程序意味着可以利用各种 IIS 功能,例如:

  • 共享端口(让多个 HTTP 应用程序同时使用 80 端口)
  • 安全特性(HTTPS,认证与授权等等)
  • URL 重写
  • 压缩
  • 缓存
  • 日志

Tomaz 同时也在博客中提供了较为详细地 iisnode 使用说明。著名微软技术博客作家 Scott Hanselman也在文章里介绍了 iisnode 项目,同时以 ASP.NET 程序员的角度介绍了 Node.js 项目,以及步步为营的 iisnode 使用向导,并使用 WCAT(Web Capacity Analysis Tool)对 iisnode 与 Node.js 应用程序进行性能分析。

值得一提的是,Scott 也在文章里提到:无论是 IIS 团队,Windows 团队还是 Azure 团队,都希望一切都能运行良好——其中自然也包括 Node.js。

2011-08-29 11:476684
用户头像

发布了 157 篇内容, 共 54.5 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

同城双中心自适应同步方案 —— DR Auto-Sync 详解

TiDB 社区干货传送门

通过label调度副本测试

TiDB 社区干货传送门

TiDB 性能测试最佳实践

TiDB 社区干货传送门

数据库架构选型

数据总量 40 亿+,报表分析数据 10 亿+,TiDB 在中通的落地与进化

TiDB 社区干货传送门

实践案例

基于TiCDC 实现的双云架构实践

TiDB 社区干货传送门

实践案例

tidb中的key和MVCC value解析

TiDB 社区干货传送门

管理与运维

Zetta:HBase 用户的新选择 —— 当知乎遇上 TiDB 生态

TiDB 社区干货传送门

实践案例

做出让人爱不释手的基础软件:可观测性和可交互性

TiDB 社区干货传送门

TiDB5.0.3-ARM平台性能测试

TiDB 社区干货传送门

安装 & 部署

云集财务业务 TiDB 实践

TiDB 社区干货传送门

实践案例 数据库架构选型

技术升级&行业升级 TiDB 助力易车打造超级汽车狂欢节

TiDB 社区干货传送门

带你重走 TiDB TPS 提升 1000 倍的性能优化之旅

TiDB 社区干货传送门

性能调优

Chaos Mesh® 在腾讯——腾讯互娱混沌工程实践

TiDB 社区干货传送门

实践案例

TiDB 监控整合方案

TiDB 社区干货传送门

实践案例

【TUG 话题探讨 005】TiDB 生态工具(DM、TiCDC等)使用场景及常见问题

TiDB 社区干货传送门

58同城大规模TiDB运维漫谈

TiDB 社区干货传送门

安装 & 部署

TiDB 5.0 两阶段提交

TiDB 社区干货传送门

TiDB 底层架构

数据引擎助力车娱融合新业态 让秒杀狂欢更从容

TiDB 社区干货传送门

内存泄漏的定位与排查:Heap Profiling 原理解析

TiDB 社区干货传送门

故障排查/诊断

TiDB 4.0 生产环境扩容 TiKV 节点详细步骤

TiDB 社区干货传送门

TIDB监控报警对接企业微信的简便工具推荐

TiDB 社区干货传送门

监控

PD 如何调度 Region

TiDB 社区干货传送门

TiDB 底层架构

我们为什么放弃 MongoDB 和 MySQL,选择 TiDB

TiDB 社区干货传送门

数据库架构选型

【TUG 话题探讨004】对 TiDB 的爱恨之情!

TiDB 社区干货传送门

TiDB 如何做到无限扩展和保证节点 id 唯一

TiDB 社区干货传送门

TiDB 底层架构

涂鸦智能选型 TiKV 的心路历程

TiDB 社区干货传送门

数据库架构选型

TiDB 4.0 基于 Binlog 的跨机房集群部署

TiDB 社区干货传送门

安装 & 部署

地产TiDB使用初探索

TiDB 社区干货传送门

安装 & 部署

通过 ProxySQL 在 TiDB 上实现 SQL 的规则化路由

TiDB 社区干货传送门

管理与运维

事务前沿研究丨事务测试体系解析

TiDB 社区干货传送门

TiDB 底层架构

TiDB HTAP 上手指南丨添加 TiFlash 副本的工作原理

TiDB 社区干货传送门

使用IIS托管运行Node.js应用程序_.NET_赵劼_InfoQ精选文章