服务器 频道

Windows Server 2008 :IIS 7与IIS 6异同

 经常听到Microsoft内部和外部的人员称新的IIS7.0网页服务器为Microsoft在过去几年以来发表过最重要的发展产品。这是相当有意义的说法,尤其是Microsoft近来发行了不少相当令人钦佩的崭新技术,包含WindowsVista?!

 IIS7.0的发行正巧是IIS第一版在WindowsNT?4.0发行的十周年。在历经四个版本之后的2001年,IIS5.0成为网际网路上最普及的网页服务器,不过在几个月之后,却难逃恶名昭彰的蠕虫CodeRed和Nimbda的魔爪。发行于WindowsServer?2003的IIS6.0大幅度重写了该服务器,其中完全着重于加强安全性、可靠性和效能。自此之后,事实证明IIS6.0具有高度可靠性与安全性,是坚如磐石的网页服务器,因为它发行以来仅有一次重要资讯安全布告栏(这是一项无法透过远端攻击的安全性问题)。

 在本文中,我想要借此机会提出新一代IIS7.0网页服务器之所以对开发人员和管理人员影响深远的主要原因,并且抢先传授您许多新功能的用法。

 IIS7.0的目标,是要将IIS6.0基础码的速度、可靠性和安全性提升为可扩充性和可管理性更优异的网页服务器平台,强化到甚至可以执行未来崭新的Web应用程式。结果造就了史上最精湛的Microsoft网页服务器,其中包含在IIS发展史上,改善最多结构项目的创举。

 IIS7.0版本的核心是完全模组化的网页服务器,其中由超过40项功能组成,而这些功能可以组合成为非常好的化的小型网页服务器,以扮演您的应用程式拓朴所需的角色。这些功能建置在新的扩充层之上,因此可以让开发人员使用原生程式码或是Microsoft?.NETFramework来扩充或替换服务器上的绝大部分项目。IIS7.0在执行时期、管理和操作功能方面,都提供较好的扩充性,可帮助您建立符合特定需求的端对端解决方案。除了核心平台之外,IIS7.0还摆平了许多与服务器管理和操作相关的问题。其中的全新设定系统可以完全委派站台的管理,并且终于使网页应用程式透过Xcopy部署的美梦成真。新的管理API与诊断功能,使得服务器的部署、管理和疑难排解大幅度的简化,比以前更便捷。

 ASP.NET整合

 IIS7.0版本推出之后,ASP.NET2.0不再仅是建立动态应用程式的非常好的架构。而是成为扩充IIS网页服务器的平台,使ASP.NET元件成为IIS要求处理管线的正式成员。以下为运作方式。

 在IIS6.0以前的版本中,ASP.NET是连结到网页服务器的独立应用程式架构。ASP.NET负责处理其注册要求的副档名(通常是.aspx和少数其它种类),此外针对其他要求,如表单验证、回应输出快取和其它包括自订ASP.NET模组所提供服务等,提供强大的处理功能。因此,唯有注册ASP.NET的内容类型,才能受惠于这些服务项目。其它包含像是ASP网页、PHP网页、影像和CGI应用程式,则无法受惠。除此之外,即使对ASP.NET资源而言,特定网页服务器功能因执行阶段的限制,亦无法在ASP.NET中使用。例如,您无法在寄出HTTP回应给用户端之前,检查和修改寄出的标头。

 在IIS7.0版本中执行整合模式时,ASP.NET模组会在统一的要求处理管线上,与原始C++IIS模组同步执行。这表示现有的ASP.NET服务,如自订ASP.NET模组所提供的输出快取、重新编写URL及其它服务等,现在可以套用到任何内容类型中。更好的执行阶段整合也使得ASP.NET模组可以存取先前无法存取的服务器功能,在大部分的情况下不再需要编写原始IIS延伸。

 透过与IIS之间更紧密的整合,ASP.NET终于在整合模式下,提供少数几个提出其他可用功能的新API。这些功能中,包括无论由谁产生的回应,都可以检阅所有回应标头的能力,以及可以在另一个URL完全重新编写要求执行等功能。

 现有应用程式通常可以利用整合模式的优势,而不需要使用特定整合模式功能的新ASP.NET模组。只要变更设定,应用程式就可以达到许多目的,例如使用ASP.NET表单验证和URL授权设定使用者安全性,来保护您整个网站,或是使用ASP.NETURL对应在应用程式中重新编写URL

 强化的安全性

 IIS7.0版本建构于IIS6.0版本的程式码基底上,而后者已证实具有良好安全性追踪记录,这都归功于实行谨慎的编码和安全预设的设计原则。除此之外,IIS7.0版本推出了几项结构变更,提供加强的安全性和几项可帮助您建构安全网页应用程式的功能。

 设计和部署安全系统的基础原则之一,就是大幅缩减攻击面区域。IIS7.0版本将IIS6.0版本的预设锁定方式提升为更高层次,前者预设安装较少的功能,更能够将服务器牢牢锁定住。藉由进一步运用服务器模组性能优势来移除所有未使用的功能,您可以将服务器的攻击面尽量缩小,显著降低服务器受到攻击者侵害的风险。

 如果在服务器未使用的元件上找到弱点,您不需要停止服务器运作,也可以防止木马程式攻击或是立即修补有弱点的元件。如此可以提升应用程式的可用性,并且降低修补管理费用。

 除了强化的核心安全性之外,IIS7.0还提供一些安全性功能,让您可以更进一步在服务器上锁定和部署安全应用程式。IIS一直以来都善用验证功能来支援保护应用程式内容。现在有了ASP.NET整合模式之后,您可以使用常用的ASP.NET安全功能,如表单验证、成员资格」和登入控制项等,在您整个应用程式上提供完整验证和存取控制解决方案。这些动作通常在几分钟之内就可以做好,而且不需编写任何的程式码。

 由ASP.NETURL授权功能所启发的全新URL授权功能可用来设定整个应用程式内的宣告式存取控制项规则。此存取规则可依照使用者名称和角色,用来允许或是拒绝该使用者存取应用程式中的URL。URL授权与ASP.NET2.0成员资格和角色管理功能等密切整合,而且可以有效与ASP.NET表单验证以及登入控制项一起使用,以便快速启动应用程式的使用者安全性。

 新的要求筛选功能提供强大的锁定功能,其中有些可在常见的URLScan工具中使用。您可以使用要求筛选,藉由拒绝含有可疑资料的要求、保护机密资源或是实施加强要求限制,来进一歩锁定您的网站。

 IIS7.0版本也推出了几项变更,主要是要简化部署和管理安全性设定。新的IIS_IUSR匿名帐户已内建,这表示它不会受到密码过期的影响,而且在电脑之间不需要同步处理密码。取代IIS_WPG群组的新IIS_IUSRS群组在执行阶段时会自动导入工作者处理序身分,如此一来,在使用自订帐号时,较不需要以手动方式新增工作者处理序身分到群组中。

 因为IIS_USR帐户和IIS_USRS群组已内建,您可以轻易地从IIS服务器,复制指定匿名IIS帐户和群组存取控制清单(ACL)的应用程式内容到另一个IIS服务器,而不用采取其它额外的步骤来保留安全性设定。这大幅简化「开发、测试、生产」周期的应用程式部署。

 稍早之前所讨论过的分散设定系统,可以让应用程式拥有者直接在其应用程式上管理必要的网页服务器设定,而不用管理存取服务器。当上载应用程式到服务器,或是使用IIS管理员工具从远端设定应用程式时,应用程式管理员可以在他们应用程式内的web.config档案中指定所需的设定。

 IIS管理员工具经由可通行防火墙的HTTPS连线,提供安全的远端管理。管理工具可以验证应用程式管理员是否为Windows使用者,或者是透过成员资格服务的自订使用者帐户。借此功能,拥有者即使不具备服务器上任何Windows存取,管理工具也能允许其进行远端应用程式管理。

 身为服务器管理员,您可以经由设定系统中的弹性锁定支援,完全控制应用程式中可设定的项目。同样的,您也可以控制应用程式管理员在远端管理应用程式时,可以使用哪些IIS管理员工具功能。

 无须侦错即可诊断错误

 若是您遇到未知的错误情况,或者由多个网页服务器元件错综复杂而导致错误,那该怎么办呢?不用担心,IIS7.0提供了完整的追踪机制,为每个要求产生详细的记录,以便用来快速追踪问题所在。

 除了在WindowsServer2003ServicePack1(SP1)中IIS6.0新增的EventTracingforWindows(ETW)事件之外,IIS7.0版本新增了更多的资讯事件。这些事件针对您可以检查的服务器处理过程中每个阶段,都包含了一些有用的资讯,以便透过执行要求和准确定位出错地点进行回溯追踪。这些事件可以传送到Windows追踪基础结构,其中允许多重Windows元件(包含ASP.NET和SQLServer?)将其追踪资讯连结至该项要求的单一逻辑执行追踪。

 失败要求追踪功能最棒的一项功能,就是可以在服务器上维持启动状态。您可以借此自动撷取要求遇到设定失败时的追踪记录,且不会为了储存已成功完成的要求追踪记录,而导致效能上的负面影响。例如,您可以启动此功能来追踪造成服务器错误的要求,或是追踪超过特定时间还尚未完成的要求。

 有了失败要求追踪功能,您可以随时掌握错误发生时的宝贵追踪资讯,即使是暂时性或者难以重现的资讯也没问题。过去需要透过繁琐侦错动作才能解决的困难问题,现在只要透过这项功能就可以协助诊断和修正。

 其根本的追踪基础结构透过了服务器扩充性模型,于IIS模组公开,让所有的服务器元件在要求处理过程当中,无论是IIS内含或是由协力厂商所开发的元件,都能发出详细的追踪资讯。IIS7.0的追踪功能透过了System.DiagnosticsAPI和ASP.NET网页追踪,与ASP.NET追踪整合,让管理模组可以善加利用统一追踪模型的优势。如要更进一歩使用此功能,您可以编写自己的追踪模组,以新的方式来处理和输出追踪资讯。例如,您可以率先编写模组来储存IIS追踪资讯到SQLServer或是到文字档。

 回溯相容性

 IIS7.0应该在不需修改的情况之下,就能执行目前大部份的应用程式。这是非常重大的创举,为了支援IIS7.0版本中各种创新功能,许多的基础架构变更是必要的。设定系统历经最多变更,它从中央松散设定存放区变成委派XML设定档阶层。设定资讯的结构和储存皆与IIS6.0Metabase截然不同,而且并未透过旧版设定API来启动存取。

 IIS7.0版本提供了Metabase模拟层来解决此问题,立即在设定系统中的资料和MetabaseABOAPI公开的介面之间进行转译。这结果也允许为Metabase所编写的程式码在经由ABO、高阶WMI或是ADSI指令码存取时能正确运作。但是必须先确定安装了相容性安装元件才能使用此功能。

0
相关文章