BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 赵劼 关注 5 他的粉丝 发布于 2011年8月30日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Re: Reply by Xu YiJun

Node.js应该不局限于某种JS引擎,而在于他的思想,js博大精深啊,呵呵,如果项目中有需要,我们会考虑,iisnode是个不错的选择。

Re: Reply by Jeffrey Zhao

如果是Windows平台做网站的Node.js使用者,我想使用iisnode(当然得发展地成熟些)应该说是很正常的。至于服务器端的跨平台,我真不知道多少人会在意……

围观 by zhuyuan xiang

将会持续关注nodejs

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT