`
sailorlee
  • 浏览: 42721 次
  • 性别: Icon_minigender_1
  • 来自: 河北唐山
最近访客 更多访客>>
社区版块
存档分类
最新评论

IIS使用指南之一 :IIS 6 新特性

阅读更多

可能很多朋友使用Windows Server 2003是因为IIS 6 的强大性能吧,和Windows 2000中包含的IIS 5 相比,IIS 6更为安全和稳定,最重要的是具有更高的性能,那么,为什么IIS 6会具有更高的性能呢?

 

IIS 5 和 IIS 6 的架构比较

这点需要从IIS 5的架构说起。IIS 5的架构如下图所示,

IIS 5 的所有组件都工作在用户模式中,核心组件INETINFO侦听WinSock端口(例如常见的TCP 80端口)。当HTTP访问请求到达时,工作在内核模式的TCP/IP驱动将其直接路由到INETINFO进程,INETINFO进程自己本身对此请求进行处理或者将其交付扩展组件(如ISAPI扩展)进行处理。IIS 5 使用COM+提供的DLLHOST基础结构方式进行工作,这种方式具有以下缺陷:

  • 在INETINFO中执行第三方代码;这样的后果是如果执行的代码有问题,那么会导致整个Web服务器停止工作;

  • 如果执行的代码工作在OOB方式,那么可能需要多次用户模式到用户模式的转换,这降低了执行效率;

  • Web服务器上的所有Web站点工作在一个应用程序池内,无法实现隔离;

 

针对IIS 5中的种种问题,微软将IIS 5的代码推倒重来,重新设计了IIS 6并在Windows Server 2003中提供。IIS 6的架构如下图所示,

可以从上图中看到,INETINFO进程虽然也存在,但是已经不再处理HTTP请求,而是处理FTP、SMTP和NNTP等非HTTP请求了。在IIS 6中,Web服务组件由以下三个组件构成:

  • 运行在内核模式的HTTP.sys(HTTP协议栈);

  • 运行在用户模式的WAS(Web Admin Service,包含于W3SVC服务中);

  • 运行在用户模式的工作进程(WP,Worker Process)

 

HTTP.sys(HTTP协议栈)

HTTP.sys是工作在内核模式的HTTP请求侦听器,它的架构如下图所示:

HTTP.sys不会执行外部代码,它具有以下作用:

  • 侦听和分析HTTP请求,支持IPv4和IPv6;

  • 根据URL命名空间将接收到的HTTP请求路由到不同的工作进程;如果请求的URL并不位于本地的URL命名空间范围中,则返回400错误;

  • 将HTTP请求进行队列缓存;

  • 在内核模式中缓存静态的和无需身份验证的内容响应;这极大的提高了Web服务的响应速度,增强了Web服务器的性能。

  • 支持PAE内存寻址方式,在x86上支持的内存容量为64GB;

 

 

WAS(W3SVC)

WAS包含于W3SVC服务中,它负责管理IIS 6中的配置、应用程序池和工作进程,它工作在用户模式,但不会执行外部代码。

它主要具有以下作用:

  • 配置HTTP.sys;

  • 管理应用程序池;

  • 创建工作进程;

  • 工作进程回收;

  • 工作进程状态监视;

  • 工作进程快速失败保护;

  • 支持孤立工作进程以进行调试等;

 

工作进程(WP,Worker Process)

在介绍工作进程之前,需要先介绍应用程序池。应用程序池定义了可以共享工作进程的Web应用程序(Web站点)的集合,你可以认为它是一组URL命名空间,属于此URL命名空间范围中的Web站点将共享此应用程序池中的工作进程,而HTTP.sys是根据应用程序池所定义的URL命名空间将接收到的HTTP请求路由到此应用程序池对应的工作进程。

和IIS 5 中只能使用一个应用程序池不同,在IIS 6 中你可以创建多个应用程序池,并将不同的Web站点(Web应用程序)分配到不同的应用程序池中,一个应用程序池可以具有一个或多个Web应用程序。不同应用程序池之间是完全隔离的,某个应用程序池出现故障时不会影响其他应用程序池;这样当属于某个应用程序池的Web站点因为代码编写问题而导致停止服务时,不会影响到使用其他应用程序池的Web站点,这最大的实现了Web服务器的高可用性。

在IIS 6中提供了Web园功能,支持使用超过1个的工作进程,并且支持在SMP系统中为工作进程分配CPU亲缘关系,让其只在某些CPU上运行。

工作进程则是真正用于处理客户发送的HTTP请求的组件,你可以认为它是一个全功能的Web服务器,就像一个微型的IIS 5 服务器一样。当HTTP.sys决定将接收到的HTTP请求路由到某个应用程序池时,它是将HTTP请求路由到此应用程序池对应的工作进程进行处理;工作进程处理HTTP请求,如果需要则加载其他组件(ISAPI扩展或过滤器等等)进行处理,并将处理结果返回给HTTP.sys。

 

当客户发起HTTP连接请求时,IIS 6完整的处理过程如下:

  • 在W3SVC服务启动时,WAS即启动,并且根据metabase.xml中的设置来配置HTTP.sys;

  • 当HTTP.sys接收到HTTP请求时,分析其URL命名空间,如果在自己的响应缓存中具有匹配值则直接从缓存中获取响应并返回给客户,如果没有匹配值则根据WAS提供的URL命名空间 范围来决定由哪个应用程序池处理此HTTP请求;

  • 如果此应用程序池当前没有工作进程,那么HTTP.sys通知WAS为其创建一个新的工作进程;

  • HTTP.sys将接收到的HTTP请求路由到对应的工作进程中,工作进程处理此HTTP请求然后将结果返回给HTTP.sys,并且根据缓存活动算法来告知HTTP.sys是否缓存此结果;

  • HTTP.sys将请求的处理结果返回给原始客户,并根据工作进程的提示来决定是否保存此处理结果到自己的缓存中。

从上面的比较可以看出,IIS 6 和 IIS 5 相比在可靠性、扩展性和安全性上都具有很大的提升,它主要具有以下新特性:

  • 可靠性:由于Web应用程序在不同的工作进程中执行,并且基于WAS完善的隔离、监控和恢复机制,当某个应用程序池出现问题时,不会影响其他应用程序池并且能够得到最快的恢复。

  • 扩展性:通过全新设计的架构,IIS 6显著的提高了Web服务器的吞吐量和性能,从而在以下方面得到了提高:

    • IIS 6 Web服务器可以架设的Web站点数;

    • 并发活动工作进程数;

    • Web服务器或Web站点的启动和停止性能;

    • Web服务器可以处理的并发请求数;

  • 安全性:和安装Windows 2000服务器时会默认安装IIS 5并启用ASP支持不同,在安装Windows Server 2003 标准版/企业版/数据中心版时默认并不会安装IIS 6,并且在安装IIS 6时,默认只能访问静态内容并且禁止使用父路径访问。管理员可以根据自己的需要在IIS管理器中启用或禁用Web服务扩展。

  • 可管理性:为了迎合企业中管理的需要,IIS 6中提供了多种管理工具,例如你可以通过IIS管理器、运行脚本或者直接修改IIS Metabase来配置IIS,你也可以安装IIS的远程管理组件来进行远程管理。

  • 增强开发支持:在IIS 6中提供了ASP.NET的支持,并且也支持XML、SOAP和IPv6。

 

 

IIS 6 中的应用程序隔离模式

和IIS 5 的架构相比,IIS 6 的新架构具有更高的性能、稳定性和可用性,但是IIS 6这种新架构所运行的隔离模式(工作进程隔离模式)不支持使用以下特性的Web应用程序:

  • COM+ OOB;

  • 会话状态保存在工作进程中:在回收工作进程时会话状态就会丢失(IIS 6 中默认会在一定空闲时间后回收工作进程);

  • 多实例ISAPI:为由多个进程加载所编写的并且并发运行的 ISAPI 应用程序。

  • 工作外进程:所编写的将请求转给其他工作进程的应用程序。

不过微软为了保持后向兼容,在IIS 6 中除了提供工作方式如上文所描述的工作进程隔离模式外,还提供了工作方式几乎和IIS 5一样的IIS 5 隔离模式,当工作在IIS 5 隔离模式下,IIS 6的架构如下图所示:

 

 

当IIS 6 工作模式为IIS 5 隔离模式时,它和IIS 5 的工作方式基本一样。而当IIS 6 工作在工作进程隔离模式下时,根据IIS 6的新架构,在隔离环境中运行所有应用程序代码,并且由于在应用程序池间切换所需要的指令很少,在隔离方式下运行代码并不会带来性能的降低。工作进程隔离模式和目前的绝大部分Web站点和Web应用程序兼容,并且可以获得更高的安全性和性能,和IIS 5 隔离模式相比,运行在工作进程隔离模式主要具有以下好处:

  • 支持使用多个应用程序池,并且每个应用程序池可以具有不同的配置;而IIS 5 隔离模式只能使用一个应用程序池并且不能进行配置;

  • 工作进程的运行账户为网络服务账户而不是IIS 5 隔离模式中的本地系统账户;

  • 支持在一个应用程序池中使用多个工作进程;支持工作进程CPU亲缘关系设定;支持工作进程回收以减少系统资源的占用;支持工作进程状态监控; 支持工作进程快速失败保护;支持孤立工作进程以进行调试等;

  • 在应用程序池之间完全隔离;

因此强烈推荐你将IIS 6运行在工作进程隔离模式下,除非你的Web应用程序明确说明不支持运行在此模式下。

分享到:
评论

相关推荐

    IIS使用指南

    本文将详细介绍IIS 6的新特性,以及与IIS 5相比,IIS 6在架构上的改进,这些改进带来了更高的性能和安全性。 ### IIS 5与IIS 6的架构比较 在IIS 5中,所有的组件运行在用户模式下,其中核心组件INETINFO监听...

    提供IIS 6下载,欢迎使用

    总结,IIS 6是微软提供的一个强大且功能丰富的Web服务器解决方案,它的安全特性和管理便捷性使其在当时受到了许多企业和开发者的青睐。即使在今天,对于仍在使用Windows Server 2003的用户,IIS 6仍然是一个可靠的...

    iis5.1iis6

    **IIS 5.1 和 IIS 6.0:深入了解与配置指南** IIS(Internet Information Services)是微软公司推出的Web服务器软件,用于在Windows操作系统上托管网站、应用程序和服务。本文将深入探讨IIS 5.1和IIS 6.0这两个版本...

    iis6.rar_iis iis6_iis6 _iis6.rar

    压缩包中的文件`iis6.pdf`可能包含了详细的IIS 6.0操作指南,涵盖从基础概念到高级配置的所有内容。`www.pudn.com.txt`可能是相关资料的来源链接或说明,用户可以通过此链接获取更多的学习资源。 对于初学者来说,...

    Microsoft IIS 6.0: Administrator's Pocket Consultant

    《Microsoft IIS 6.0: Administrator's Pocket Consultant》是一本专门为IIS 6.0管理员准备的实用手册,旨在帮助读者深入理解和高效管理Internet Information Services(IIS)6.0这一版本。作为Windows Server 2003...

    Windows 2016学习指南之IIS篇

    Windows Server 2016是微软公司在2016年发布的服务器操作系统,它包含了众多的新特性和增强功能,其中IIS(Internet Information Services)作为Windows服务器的重要组成部分,也得到了相应的更新和改进。IIS 10.0是...

    iis7安装文件

    ServerManagerCmd -i IIS-WebServerRole -i IIS-WebServer -i IIS-CommonHttpFeatures -i IIS-HealthAndDiagnostics -i IIS-HttpLogging -i IIS-StaticContent -i IIS-DefaultDocument -i IIS-DirectoryBrowsing -i...

    简易IIS服务器 iis服务器

    3. **安全性**:IIS提供了一系列安全特性,如SSL/TLS加密、防火墙规则、身份验证机制(基本认证、Windows NTLM认证、Kerberos认证等)和访问控制,保障了网站数据的安全传输。 4. **性能优化**:通过缓存、压缩、多...

    IIs6整合jboss4.2 配置开发包

    6. 使用提供的参考指南,根据具体环境调整配置参数,如端口、服务器地址等。 7. 启动IIS,测试整合是否成功,可以通过访问一个已部署在JBOSS上的应用来验证。 这种整合方式允许开发者在不改变现有IIS结构的情况下,...

    IIS 200804091iis51.rar

    在2008年,IIS可能处于IIS 7.0版本,这是IIS的一个重要里程碑,因为它引入了许多新的特性和改进。 以下是关于IIS 7.0及其相关知识点的详细介绍: 1. **模块化设计**:IIS 7.0采用全新的模块化架构,允许管理员仅...

    IIS 6.0资源工具包(iis60rkt) 微软官方下载

    IIS 6.0资源工具包(iis60rkt)是微软为Windows Server 2003系统以及Windows XP Professional中的Internet Information Services (IIS) 6.0版本提供的一个重要辅助工具集。这个工具包旨在帮助管理员更有效地管理和优化...

    IIS 安装设置指南

    IIS6.0尤其注重安全性,引入了许多新的安全特性,如: 1. **增强的安全模式**:默认情况下,IIS6.0采用更严格的安全模式运行,减少了因配置不当而引发的安全漏洞。 2. **改进的用户隔离**:IIS6.0增强了对用户请求...

    windows xp sp3 iis6 完整包

    《Windows XP SP3集成IIS6:构建本地服务器的详细指南》 Windows XP Service Pack 3(SP3)是微软发布的Windows XP操作系统的重要更新,它包含了大量的安全修复、性能优化和新功能。在这个环境中,IIS(Internet ...

    WindowsServer20003 IIS安装包 源文件 IIS6.0

    - **IIS.txt**:可能详细介绍了IIS 6.0的新特性和使用方法。 - **i386**:这个目录可能包含了IIS 6.0的安装源文件,通常用于离线安装或者批量部署。 4. **最佳实践** - **安全配置**:安装后应立即进行安全配置...

    win7使用IIS7.5

    本指南将详细介绍如何在Win7上安装、配置及使用IIS7.5,帮助你更好地理解这个关键的网络服务组件。 一、安装IIS7.5 1. 打开“控制面板”:点击“开始”按钮,选择“控制面板”。 2. 选择“程序”:在控制面板中...

    IIS5.1 For WinXP

    6. **安全与性能优化**:尽管IIS5.1提供了一个基础的Web服务器环境,但为了确保安全性,你应该考虑安装所有可用的安全更新,包括Service Pack和补丁。此外,了解如何正确配置权限、限制匿名用户访问以及启用日志记录...

    最新的iis建站软件

    4. **安全强化**:IIS的安全特性,如SSL证书配置、防火墙规则等,能帮助保护批量创建的网站免受潜在攻击。 5. **扩展性**:IIS支持多种编程语言(如ASP.NET、PHP、Python等),并且可以通过扩展模块增加更多功能。 ...

    IIS6.rarIIS6.rar

    【描述】:IIS6是Internet Information Services(IIS)的第六个主要版本,是微软开发的一款用于Windows Server 2003操作系统的Web服务器软件。它提供了多种Web服务功能,包括HTTP、HTTPS、FTP、SMTP等协议的支持,...

    Win2003_IIS6_x86_chs

    【描述】中的"Win2003_IIS6_x86_chs"与标题相同,进一步强调了这是关于Windows Server 2003的IIS 6.0的中文安装或配置资源,可能包括安装指南、设置文档、常见问题解答、安全配置建议等。 【标签】"WIN2003"和"IIS6...

Global site tag (gtag.js) - Google Analytics