模块化的Web新平台 IIS7.5扩展性讨论

 IIS 7的扩展应用

  随着Windows Server 2008 R2的推出,IIS的版本从7.0升级到7.5,增加了很多新的特性。IIS 7.0具有前所未有的扩展性,在微软Windows Server中是一个里程碑式的Web服务器平台。IIS 7.5延续了IIS 7.0的模块化、可扩展等基本特性,并增加了PowerShell命令行、Admin扩展等新特性。本文中我们将讨论IIS 7.5的可扩展性,看IIS 7.5如何让您的Web应用变得简单。

  IIS 7的扩展应用

  IIS 7的可扩展模型让Web和系统开发人员可以应用界面友好,功能完善的API,结合IIS 7包含的服务、扩展功能、模块和工具构成一个强大的Web平台。


模块化的Web新平台 IIS7.5扩展性讨论_第1张图片
IIS的扩展应用

  上图列出了一些常见的IIS平台扩展应用,更详细的信息可以通过http://www.iis.net/extensions获得,这些应用基于Windows Server 2008和R2。其中的一些扩展应用是狠心的,如Web Platform Installer就是在IIS 7中才引入,而Url Rewrite模块目前已经很受欢迎。Url Rewrite模块提供了一个基于规则的重写机制,用于在Web服务器处理URL请求前更改它们。

模块化的Web新平台 IIS7.5扩展性讨论_第2张图片
基于Windows Server 2008 R2的IIS 7.5集成了一些扩展应用,在IIS 7.5平台上还具有一部分扩展功能

  应用IIS 7,你可以根据自己的需求定制服务器,如果你想写一个自己的功能模块,比如压缩模块等,应用IIS 7可以简单的实现。虽然应用IIS 6也可以做到这些事情,但是需要ISAPI filters和一些扩展功能,操作起来并不方便。

  可扩展意味着可以为你的Web服务器选择一些定制化的模块进行安装,此外,在IIS 7中,即使模块已经可用,用户也可以添加新的或定制化的模块, 在www.iis.net上已经发布了扩展的API,让开发者可以在Web服务器上添加或替换模块。随着Windows Server 2008的发布,IIS具有了很多的扩展功能,并且其中一部分被整合到了R2中,IIS团队还会继续开发新的扩展功能,可以安装在IIS上,保证R2中IIS 7.5的更新。

  模块化可扩展架构

  IIS 7(7.0/7.5)在增强的API上采用了完全模块化的架构,这让开发者可以方便的添加、删除、甚至用自己创建的模块来代替IIS 7中内建的组件,这样可以让Web站点更加个性化,符合自身的要求。此外,这种模块化架构让Web管理员可以在服务器表面层对服务器进行完全的控制,仅仅需要安装和管理需要的组件,这样降低了Web服务器的受攻击表面,提高安全性,还可以将资源利用率降到最低。


模块化的Web新平台 IIS7.5扩展性讨论_第3张图片
IIS 7被分成40多个功能模块,可通过API扩展Web服务器功能

模块化的Web新平台 IIS7.5扩展性讨论_第4张图片
IIS 7模块化的安装模式

  除了IIS 7本身的架构,IIS 7的管理系统,以及IIS管理工具同样也是完全可扩展的,为开发者和管理员提供丰富管理功能。因为IIS 7是一个完全模块化的Web服务器平台,所以管理员可以对Web服务器表面区域进行完全的控制。

  集成的管道(pipelines)

  IIS 6.0以及之前版本的IIS支持通过ASP.NET平台开发.NET应用组件,ASP.NET通过ISAPI扩展和IIS集成,一个ASP.NET请求首先会被IIS处理,然后转发到安置ASP.NET管道和页面框架的ASP.NET ISAPI DLL。而对非ASP.NET的请求,如ASP页面、静态文件,将被IIS或其他ISAPI扩展处理。

模块化的Web新平台 IIS7.5扩展性讨论_第5张图片
IIS 6.0 & ASP.NET管道

  这种模型的限制是ASP.NET模块、以及定制化的ASP.NET应用代码所提供的服务是不针对非ASP.NET请求的。ASP.NET模块不能影响在ASP.NET执行路径前后的IIS处理请求。

模块化的Web新平台 IIS7.5扩展性讨论_第6张图片
IIS 7的集成管道模式

   而IIS 7提供了统一的请求处理管道,将ASP.NET请求管道和IIS核心(native)请求管道集成在一起,任何类型的请求都由IIS 7处理,不管是IIS核心模块还是ASP.NET模块在所有场景下都能处理请求,这使得处理验证、缓存输出等工作的ASP.NET模块可以用来处理ASP页面、PHP页面、静态文件等请求。集成管道提供更好的性能,实现配置和管理的模块化,且增加了使用托管代码模块扩展IIS时的灵活性。

你可能感兴趣的:(Web,asp.net,扩展,web服务,IIS,平台)