了解 IIS 7 中的安装

作者:Saad Ladki

关于本文

本文概述了 Microsoft Windows Vista® 和 Microsoft Server® 2008 安装技术,并对 IIS 7.0 及更高版本的组件化安装进行了详细说明。 此信息对于需要在命令行和无提示脚本方案中自定义 IIS 安装程序的用户尤其重要。 如果你经常在脚本中使用 Sysocmgr.exe 来安装 IIS 6.0,则必须在 Windows Vista 和 Windows Server 2008 中为 IIS 7.0 及更高版本更改这些脚本。 本白皮书提供了进行这些更改所需的背景信息。

关于 IIS 7 及更高版本

IIS 7 及更高版本是用于指代 Windows Server® 2008、Windows Server® 2008 R2、Windows Vista® 和 Windows® 7 的某些版本中包含的 Internet 信息服务 (IIS) 版本的产品名称。

IIS 7.0 是 Windows Server 2008 中的 Web 服务器 (IIS) 角色,也是 Windows Vista 中的 Web 服务器。

IIS 7.5 是 Windows Server 2008 R2 中的 Web 服务器 (IIS) 角色,也是 Windows 7 中的 Web 服务器。

IIS 安装概述

IIS 7 及更高版本具有完全模块化的安装设计,可以控制 Web 服务器的占用空间。 IIS 中提供的 GUI、命令行和无提示安装选项有助于轻松管理 IIS Web 服务器的安全性和服务占用空间。

新的 IIS 服务器管道体系结构提供高级别的组件粒度。 由于这种粒度,你在安装 IIS 时,可以在用户可选择、可安装的组件中呈现这种粒度。 还可以使用 IIS 安装程序从 40 多个 IIS 功能中进行选择来自定义安装。 IIS 安装程序的新增功能是能够仅安装所需的功能模块,从而部署非常精简的、特定于任务的服务器,并以前所未有的方式锁定功能。

Windows Server 2008 和 Windows Vista 基于组件的安装

Windows Vista 和 Windows Server 2008 的操作系统和可选功能安装基于全新的技术。 新的安装技术现在由声明性模型驱动,操作系统的每个功能都定义了自己的一组组件,这些组件构成了该功能及其依赖项。

Windows Vista 和 Windows Server 2008 在几个重要方面受益于这种新的安装基础结构:

  • 适用于所有版本 Windows Server 2008 的单一二进制文件基础

    • 操作系统版本以声明方式组合。
    • 客户端和服务器版本共享相同的代码库。
  • 服务

    • 所有功能的已知依赖项。
    • 现在已经完全了解维修组件的影响。
    • 较小的服务包。
  • 安全性

    • 减小受攻击面。
    • 并非每个操作系统版本都安装所有二进制文件。

Windows Server 2008 和 Windows Vista 可选功能设置

在 Windows Vista 和 Windows Server 2008 中,用于安装操作系统的基于组件的安装技术也用于安装 IIS 等可选功能。 在 Windows Vista 和 Windows Server 2008 之前,Windows 安装基础结构包含升级、服务和向 OS 添加可选功能之前所需的多种技术。 这些技术包括:

  • 用于安装操作系统的 Setup.exe。
  • 用于安装可选功能的 Sysocmgr.exe。
  • 用于安装可选功能的应答文件。
  • 用于安装服务包的 Update.exe。
  • MSI 安装程序包。

在 Windows Vista 和 Windows Server 2008 中,我们现在拥有一个基于组件的安装基础结构,它整合了操作系统干净安装、操作系统服务以及可选功能安装。 对于可选功能,该技术现在取代了 Sysocmgr.exe。

注意

如果你经常直接使用 Sysocmgr.exe 来安装 IIS,则必须针对 Windows Vista 和 Windows Server 2008 更改这些脚本。

安全性、服务和 IIS 7.0 及更高版本设置组件

在 IIS 6.0 中,IIS 团队采取了大胆的步骤,默认保护 Web 服务器。 这意味着要禁止 ISAPI 扩展和 CGI 组件运行,直到管理员在服务器上明确启用这些功能。 这样,潜在攻击面在 IIS 5.0(默认情况下安装并启用所有功能)和 IIS 6.0(默认情况下在 Web 服务器干净安装中仅允许静态文件服务)之间发生了巨大变化。

这种理念上的改变确实在 Web 服务器上创建了更小的默认攻击面,但它还远非完美。 虽然 IIS 6.0 在安全性、可靠性和性能方面比其前身在许多方面都有所改进,但它仍然以相对单一的方式设计。 这意味着虽然许多可选功能在安装时被禁用,但它们仍然会安装并加载到 Web 服务器中。 这些功能还继续消耗 CPU 和内存,并且需要修补和软件更新,即使在禁用状态下也不例外。 例如,始终安装 IIS 6.0 的 CGI 功能,无论曾使用过该功能。 如果 CGI 的软件更新可用,则每个 IIS 客户都需要安装它,无论它是否正在使用。

在 IIS 7.0 及更高版本中,IIS 团队通过将 IIS 打造为完全模块化的 Web 服务器,并设计设置以充分利用这种高度模块化,从而解决这一问题。 对于 IIS 7.0 及更高版本,不仅会禁用不需要的组件,甚至不会安装它们。 这样,你就可以仅安装所需 IIS 功能的模块,并且只需维护使用的组件集。 这使得部署非常精简的、特定于任务的服务器成为可能,并能以前所未有的方式锁定未使用的功能。

IIS 7.0 及更高版本的组件概述

下表汇总了 IIS 7.0 及更高版本的所有可安装组件功能。 该表还将功能分组为多个功能区域。 这些功能区域由安装用户界面(例如服务器管理器)以及新的命令行和脚本工具使用。 下一节将详细探讨每个功能区域和功能组件。

安装菜单项

描述

%

Web 服务器

安装 IIS Web 服务器。 提供对 HTML 网站的支持以及对 ASP.NET、经典 ASP 和 Web 服务器扩展的可选支持。

 

通用 HTTP 功能

安装对静态 Web 服务器内容(例如 HTML 和图像文件、自定义错误和重定向)的支持。

       

静态内容

提供来自网站的 .htm、.html 和图像文件。

       

默认文档

允许你指定当用户未在请求 URL 中指定文件时加载的默认文件。

       

目录浏览

允许客户端查看 Web 服务器上目录的内容。

       

HTTP 错误

安装 HTTP 错误文件。 允许自定义返回到客户端的错误消息。

         

HTTP 重定向

支持将客户端请求重定向到特定目标。

     

应用程序开发

安装对应用程序开发的支持,例如 ASP.NET、经典 ASP、CGI 和 ISAPI 扩展。

         

ASP.NET

支持 Web 服务器承载 ASP.NET 应用程序。

         

.NET 可扩展性

支持 Web 服务器承载 .NET Framework 托管模块扩展。

         

ASP

支持 Web 服务器承载经典 ASP 应用程序。

         

CGI

支持 CGI 可执行文件。

         

ISAPI 扩展

允许 ISAPI 扩展处理客户端请求。

         

ISAPI 筛选器

允许 ISAPI 筛选器修改 Web 服务器行为。

         

服务器端包括

支持 .stm、.sthtm 和 .shtml 包含文件。

   

%

运行状况和诊断

支持监视和管理服务器、站点和应用程序的运行状况。

       

HTTP 日志记录

支持记录此服务器的网站活动。

         

日志记录工具

安装 IIS 日志记录工具和脚本。

       

请求监视器

监视服务器、网站和应用程序运行状况。

         

跟踪

支持跟踪 ASP.NET 应用程序和失败请求。

         

自定义日志记录

支持 Web 服务器、网站和应用程序的自定义日志记录。

         

ODBC 日志记录

支持记录到 ODBC 兼容数据库。

     

安全性

启用其他安全协议来保护服务器、站点、应用程序、vdirs 和文件。

         

基本身份验证

需要有效的 Windows 用户名和密码才能连接。

         

Windows 身份验证

通过使用 NTLM 或 Kerberos 对客户端进行身份验证。

         

摘要式身份验证

通过将密码哈希发送到 Windows 域控制器,对客户端进行身份验证。

         

客户端证书映射身份验证

使用 Active Directory 帐户对客户端证书进行身份验证。

         

IIS 客户端证书映射身份验证

将客户端证书一对一或多对一地映射到 Windows 安全标识。

         

URL 授权

授权客户端访问组成某个 Web 应用程序的 URL。

         

请求筛选

配置规则以阻止选定的客户端请求。

         

IP 安全

基于 IP 地址或域名允许或拒绝内容访问。

   

%

性能

 
       

?

静态内容压缩

将静态内容返回给客户端之前对其进行压缩。

         

动态内容压缩

将动态内容返回给客户端之前对其进行压缩。

%

Web 服务器管理工具

安装 Web 服务器管理控制台和工具。

   

IIS 管理控制台

安装 Web 服务器管理控制台,此控制台支持管理本地和远程 Web 服务器。

     

IIS 管理脚本和工具

使用 IIS 配置脚本管理本地 Web 服务器。

     

管理服务

允许通过 IIS 管理控制台从另一台计算机远程管理此 Web 服务器。

     

IIS 6 管理兼容性

允许使用现有的 IIS 6.0 API 和脚本来管理此 IIS 7.0 及更高版本的 Web 服务器。

         

IIS 元数据库和 IIS 6 配置兼容性

安装 IIS 元数据库和兼容性层,允许元数据库调用与新的 IIS 7.0 及以上版本的配置存储交互。

         

IIS 6 WMI 兼容性

安装 IIS 6.0 WMI 脚本接口。

         

IIS 6 脚本工具

安装 IIS 6.0 配置脚本。

         

IIS 6 管理控制台

安装 IIS 6.0 管理控制台。 支持从此计算机管理远程 IIS 6.0 服务器。

 

FTP 发布服务

安装文件传输协议 (FTP) 服务和 FTP 管理控制台。 支持上传和下载文件。

     

FTP 服务器

安装 FTP 服务。

     

FTP 管理控制台

安装 FTP 管理控制台可管理本地和远程 FTP 服务器。

密钥:

 

默认情况下,功能未处于选中状态。

%

默认情况下,功能处于选中状态,但具有一个或多个未选中的子功能。

?

默认情况下,功能处于选中状态 - 所有(如果有)子功能也处于选中状态。

IIS 7.0 及更高版本的功能包

通过服务器管理器或 Windows 功能向导安装 IIS 7.0 及更高版本只需选中所需的每个功能的复选框。 如果需要使用命令行脚本或无提示文件进行安装,必须知道 IIS 包中代表这些功能的 IIS 组件的实际名称。

  • 服务器管理器用户界面中的每个 IIS 可选功能都对应于 IIS 包中的特定更新名称。
  • 若要使用 Pkgmgr.exe 命令行工具或操作系统无提示 XML 文件安装 IIS 功能,则需要使用 IIS 功能更新名称。

包更新

安装中显示的每个 IIS 功能都直接映射到 IIS 包更新。 包中的顶级 IIS 更新是 IIS-WebServerRole。 下一级别的更新将 IIS-WebServerRole 中的三个主要功能区域分组。 这些功能是:

  • IIS-WebServer
  • IIS-WebServerManagementTools
  • IIS-FTPPublishingService

其中每一组都包含一个或多个具有可安装功能的更新。

IIS-WebServer 更新

所有 Web 服务器功能都在 IIS-WebServer 更新下分组排列:

  • IIS-CommonHttpFeatures
  • IIS-ApplicationDevelopment
  • IIS-HealthAndDiagnostics
  • IIS-Security
  • IIS-Performance

其中每一组都包含一个或多个具有可安装功能的更新。

常见 HTTP 功能更新

分组在“常见 HTTP 功能”下的 IIS 功能支持静态 Web 服务器内容(例如 HTML 和图像文件、自定义错误和重定向)。 这些功能通常始终随 IIS 一起安装,但你可以选择忽略某些或全部这些功能以进行特殊用途的配置。

  • IIS-CommonHttpFeatures

    • IIS-StaticContent
    • IIS-DefaultDocument
    • IIS-DirectoryBrowsing
    • IIS-HttpErrors
    • IIS-HttpRedirect

应用程序开发更新

应用程序开发更新将支持 Web 应用程序和动态内容(例如 ASP.NET 应用程序、经典 ASP 应用程序以及 ISAPI 扩展和筛选器)部署的功能归为一组。 根据你计划在 Web 服务器上部署的应用程序类型,选择要安装的功能(如果有)。

  • IIS-ApplicationDevelopment

    • IIS-ASPNET
    • IIS-NetFxExtensibility
    • IIS-ASP
    • IIS-CGI
    • IIS-ISAPIExtensions
    • IIS-ISAPIFilter
    • IIS-ServerSideIncludes

运行状况和诊断更新

运行状况和诊断更新将启用日志记录、请求监控和诊断的功能归为一组。

  • IIS-HealthAndDiagnostics

    • IIS-HttpLogging
    • IIS-LoggingLibraries
    • IIS-RequestMonitor
    • IIS-HttpTracing
    • IIS-CustomLogging
    • IIS-ODBCLogging

安全更新

安全更新将所有身份验证、授权和筛选功能归为一组。

  • IIS-Security

    • IIS-BasicAuthentication
    • IIS-WindowsAuthentication
    • IIS-DigestAuthentication
    • IIS-ClientCertificateMappingAuthentication
    • IIS-IISCertificateMappingAuthentication
    • IIS-URLAuthorization
    • IIS-RequestFiltering
    • IIS-IPSecurity

匿名身份验证不是可选安装;它始终随任何 Web 服务器功能一起安装。

性能

性能更新分组包括静态和动态内容的两个压缩更新。

  • IIS-Performance

    • IIS-HttpCompressionStatic
    • IIS-HttpCompressionDynamic

管理工具

Web 管理工具将 IIS 7.0 及更高版本的管理工具以及 IIS 6.0 兼容性工具归为一组。

  • IIS-WebServerManagementTools

    • IIS-ManagementConsole

    • IIS-ManagementScriptingTools

    • IIS-ManagementService

    • IIS-IIS6ManagementCompatibility

      • IIS-Metabase
      • IIS-WMICompatibility
      • IIS-LegacyScripts
      • IIS-LegacySnapIn

注意

如果使用采用 ABO 或 ADSI API 的脚本或应用程序,请选择安装 IIS-IIS 6.0 ManagementCompatibility 组中的功能,以便为这些管理工具提供对 IIS 7.0 及更高版本的前向兼容性。 至少必须安装 IIS-Metabase 更新;如果脚本还使用 IIS WMI 提供程序,则还要安装 IIS-WMICompatibility 更新。

FTP 发布服务更新

此更新将 FTP 服务器和 FTP 管理控制台归为一组。

  • IIS-FTPPublishingService

    • IIS-FTPServer
    • IIS-FTPManagement

Windows Process Activation Service 更新

Windows 进程激活服务 (WAS) 包括提供基本级别的进程激活和管理以及 HTTP 处理基础结构所需的所有必要基础结构。

  • WAS-WindowsActivationService

    • WAS-ProcessModel
    • WAS-NetFxEnvironment
    • WAS-ConfigurationAPI

IIS-WebServer 更新下分组的所有功能都依赖于 WAS 功能,只要选择 IIS-WebServer 功能,就必须安装这些功能。 从服务器管理器或 Vista Windows 功能向导安装 IIS 时,不必进行任何显式的 WAS 选择。

更新依赖项

正如你早在 Windows Server 2008 上安装 IIS 7.0 及更高版本中看到的,使用服务器管理器添加角色向导安装 IIS 还需要安装 WAS。

服务器管理器会向你发送通知,并自动安装所需的依赖项。 通过命令行或使用 Unattend.xml 安装软件包更新时,需要显式指定这些依赖项。

WAS 上的 IIS 依赖项

更新组 IIS-WebServer 下的所有功能都依赖于 WAS 功能:

  • WAS-WindowsActivationService

    • WAS-ProcessModel
    • WAS-NetFxEnvironment
    • WAS-ConfigurationAPI

这三个 WAS 更新是在 IIS-WebServer 更新组中安装功能的先决条件。

IIS 7.0 及更高版本的内部依赖项

某些 IIS 7.0 及更高版本的功能依赖于其他版本的 IIS。 通过服务器管理器等用户界面安装 IIS 时,会自动安装所需的依赖项。 通过命令行或 Unattend.xml 安装包更新时,必须显式指定这些依赖项. IIS 更新内部依赖项汇总如下:

更新 依赖于
IIS-WebServer WAS-ProcessModel – IIS-WebServer 下的所有叶节点都需要此功能。
IIS-ASP IIS-ISAPIExtensions IIS-RequestFiltering
IIS-ASPNET IIS-DefaultDocument IIS-NetFxExtensibility WAS-NetFxEnvironment IIS-ISAPIExtensions IIS-ISAPIFilter IIS-RequestFiltering
IIS-NetFxExtensibility WAS-NetFxEnvironment IIS-RequestFiltering
IIS-ManagementService IIS-WebServer(必须选定至少一个子项)IIS-ManagementConsole WAS-NetFxEnvironment WAS-ConfigurationAPI
IIS-ManagementConsole WAS-ConfigurationAPI
IIS-ManagementScriptingTools WAS-ConfigurationAPI
IIS-LegacyScripts IIS-Metabase IIS-WMICompatibility

IIS 7.0 及更高版本的父组更新依赖项

每个 IIS 更新都隐式依赖于其父组更新。 例如:

  • IIS-StaticContent 依赖于 IIS-CommonHttpFeatures。
  • IIS-CommonHttpFeatures 依赖于 IIS-WebServer。
  • IIS-WebServer 依赖于 IIS-WebServerRole。

同样,安装 UI 工具(例如服务器管理器)会自动处理此问题,但在使用命令行工具安装更新时,还必须显式安装所有父更新和任何其他依赖项。 有关更新依赖项的其他信息,请参阅“自定义安装”部分

IIS 7.0 及更高版本的默认安装

每个 IIS 更新都定义其默认安装行为,安装用户界面使用该行为来确定预先选择哪些功能。 使用安装用户界面安装时,单击“下一步”。 单击“下一步”后,你将获得 IIS 的默认安装,这将安装以下更新列表:

IIS-WebServer

  • IIS-CommonHttpFeatures
  • IIS-StaticContent
  • IIS-DefaultDocument
  • IIS-DirectoryBrowsing
  • IIS-HttpErrors

IIS-HealthAndDiagnostics

  • IIS-HTTPLogging
  • IIS-RequestMonitor

IIS-Performance

  • IIS-HttpCompressionStatic

IIS-WebServerManagementTools

  • IIS-ManagementConsole

WAS-WindowsActivationService

  • WAS-ProcessModel
  • WAS-ConfigurationAPI

因此,IIS 默认安装提供具有本地管理和匿名身份验证的基本静态内容服务器。 对于安装的每个 IIS 更新,该模块的默认配置都会添加到 ApplicationHost.config。

IIS 7.0 及更高版本的升级

Windows Vista 和 Windows Server 2008 都支持将早期版本的 IIS 升级到 IIS 7.0 及更高版本,详细信息如下:

  • 升级到 Windows Server 2008 支持的 IIS/操作系统版本

    • Windows Server 2003 上的 IIS 6.0(Vista Beta 2 不支持)
  • 升级到 Windows Vista 支持的 IIS/操作系统版本

    • Win XP 上的 IIS 5.1(Vista Beta 2 支持)

Windows Vista 或 Windows Server 2008 不支持将早期 IIS 版本跨机器迁移到 IIS 7.0 及更高版本(例如,将 IIS 网站移动到新机器)。 IIS 团队希望提供一个 IIS 迁移工具,该工具可用于将现有网站跨计算机移动到 Windows Vista 或 Windows Server IIS 7.0 及更高版本。

升级步骤

Windows Vista 和 Windows Server 2008 操作系统升级在三个不同的阶段进行预配置:检测和收集、安装和设置应用程序。 这些步骤仅适用于操作系统功能和设置。 任何非 Windows 创建或拥有的文件系统内容在升级过程中都保持不变。 因此,升级后,原始操作系统上的所有 Web 内容都存在。

检测和收集

在操作系统升级到 Windows Vista 或 Windows Server 2008 期间,实际操作系统升级开始之前,IIS 检测组件会在现有操作系统上运行。 如果在现有 Windows 操作系统上检测到 IIS,则会收集并保留所有元数据库和 IIS 状态信息。

安装

安装阶段包括安装 Windows Vista 或服务器操作系统,然后安装可选功能(例如 IIS,如果在原始操作系统上检测到这些功能)。 选择安装哪些 IIS 更新基于从原始操作系统收集的 IIS 状态信息。

应用设置

操作系统安装和 IIS 等可选功能安装完成后,将应用从原始操作系统收集的状态信息。 此时,原始 IIS(5.0 或 6.0)中的配置数据库设置将被转换并更新到新的 IIS 7.0 及更高版本的配置存储 ApplicationHost.config 中。

升级期间安装的 IIS 7.0 及更高版本组件

在检测和收集阶段,IIS 升级会检查关键 IIS 服务和文件是否存在,并根据下表安装 IIS 更新:

下级检测逻辑 IIS 7 及更高版本的已安装更新
作为服务安装的 W3SVC IIS-ASP IIS-BasicAuthentication IIS-CGI IIS-ClientCertificateMappingAuthentication IIS-CustomLogging IIS-DefaultDocument IIS-DigestAuthentication IIS-DirectoryBrowsing IIS-HttpCompressionDynamic IIS-HttpCompressionStatic IIS-HttpErrors IIS-HTTPLogging IIS-HttpRedirect IIS-HttpTracing IIS-IISCertificateMappingAuthentication IIS-IPSecurity IIS-ISAPIExtensions IIS-ISAPIFilter IIS-LegacyScripts IIS-LoggingLibraries IIS-ManagementScriptingTools IIS-ManagementService IIS-ODBCLogging IIS-RequestFiltering IIS-RequestMonitor IIS-ServerSideIncludes IIS-StaticContent IIS-URLAuthorization IIS-WindowsAuthentication IIS-WMICompatibility WAS-ConfigurationAPI WAS-NetFxEnvironment WAS-ProcessModel
作为服务安装的 MSFTPSVC IIS-FTPServer
存在 INETMGR.EXE IIS-FTPManagement IIS-LegacySnapIn IIS-ManagementConsole
作为服务安装的 IISAdmin IIS-Metabase

升级期间的更新安装粒度不如在干净 IIS 安装方案中的粒度,因为以前版本的 IIS 的组件粒度非常有限。 因此,几乎所有 Web 服务器功能都在升级过程中安装。 所以,你应该重新审视应用程序对 IIS 功能的依赖,并卸载升级后不需要的 IIS 更新。

IIS 7.0 及更高版本的安装方法

有四种主要的 IIS 安装方法:Windows 可选功能用户界面、命令行工具、无提示文件和升级。 除升级之外的所有方案均提供了“操作说明”文章。

必须在 Windows Vista 和 Windows Server 2008 中使用不同的 Windows 用户界面:

  • 在 Windows Server 2008 中,使用服务器管理器工具。
  • 在 Windows Vista(客户端)中,使用 Windows 添加/移除 Windows 功能向导。

命令行、无提示文件和升级方案在 Windows Vista 和 Windows Server 2008 版本上均可用。

服务器管理器工具

服务器管理器工具在 Windows Server 2008 上提供设置用户界面,并取代了 Windows Server 2003 中的“管理你的服务器”。 服务器管理器还为每个已安装的角色提供服务器角色管理仪表板,用于指示安装状态、当前状态以及管理和任务。

Windows Server 2008 上安装 IIS 7.0 及更高版本一文提供了使用新的服务器管理器工具在 Windows Server 2008 上安装 IIS 的分步演练。

服务器管理器窗口的屏幕截图。
图 1:服务器管理器

“添加/移除 Windows 功能”向导

在 Windows Vista 上,使用“添加/移除 Windows 功能向导”时会安装可选功能,该向导与 Windows XP“添加/移除 Windows 组件”向导功能类似。 Windows 功能向导提供与服务器管理器工具中相同的可选 IIS 功能。

在 Windows Vista 上安装 IIS 7.0 及更高版本一文提供了在 Windows Vista 上安装 IIS 的分步演练。

Windows 功能对话框的屏幕截图。
图 2:“添加/移除 Windows 功能”向导

IIS 的命令行安装

Windows Vista 和 Windows Server 2008 中新增了 Pkgmgr.exe 命令行工具这一功能。 Pkgmgr 用于安装和卸载 Windows 可选功能并替换 Sysocmgr.exe。 从命令行安装 IIS 7.0 及更高版本一文提供了使用 pkgmgr 工具在 Windows Vista 或 Windows Server 2008 上安装 IIS 的分步演练。

命令行无提示安装

Pkgmgr.exe 还可以接受来自 unattend.xml 文件的输入。 使用此文件列出要安装或卸载的更新。 通过无提示安装安装 IIS 7.0 及更高版本一文提供了使用无提示文件和 Pkgmgr 工具在 Windows Vista 或 Windows Server 2008 上安装 IIS 的分步演练。

自定义安装

上一节中描述的四个演练中的每一个都提供了安装所有 IIS 功能的分步说明。 如果你打算尝试 https://www.iis.net 上的某些其他 IIS 功能演练,则需要安装所有 IIS 功能,但不建议在实际开发或部署方案中采取这种做法。

在规划开发或部署环境的 IIS 安装时,应该仅安装应用程序所需的功能。 最大程度地减少以这种方式安装的 IIS 组件具有以下好处:

  • 通过减少加载到内存中的管道模块的数量来提高性能。
  • 通过减少需要管理的 IIS 组件数量来提高安全性。
  • 通过减少可能被利用的组件数量来提高安全性。
  • 深入理解应用程序对 IIS 模块的依赖。

自定义安装的规划注意事项

通过将所需功能分为三个主要区域来开始 IIS 部署规划:IIS 6.0 管理兼容性、Web 管理、FTP 服务器和 Web 服务器。 以下各节将回顾其中每一项。

IIS 6.0 管理兼容性

早期版本的 IIS 使用 API 和 WMI 提供程序来读取和写入元数据库设置。 这些 API 不是 IIS 7.0 及更高版本默认安装的一部分,必须显式选择安装。

如果你有依赖于 IIS API(例如 ABO 或 ADSI)或 IIS 6.0 WMI 提供程序的脚本或应用程序,请在安装中包括以下 IIS 软件包更新:

  • IIS-Metabase
  • IIS-WMICompatibility

许多 IIS 6.0 脚本也可以通过使用此更新来安装:

  • IIS-LegacyScripts

注意

可通过更新 IIS-LegacySnapIn 安装的 IIS 6.0 管理控制台不允许使用 IIS 6.0 MMC 管理控制台来管理 IIS 7.0 及更高版本的 Web 服务器。 提供 IIS 6.0 管理控制台,用于管理托管 Windows Server 2003 的 IIS 6.0 Web 服务器。

Web 管理

使用 IIS,可以选择多种方式来管理 Web 服务器。 可以选择仅远程管理、仅本地管理或安装对这两种方式的支持。 本地管理控制台通过 IIS 包更新 IIS-ManagementConsole 安装。 对于远程管理,必须安装 IIS-ManagementService 更新。 通过管理服务,你可以从安装在非服务器所在计算机上的管理控制台连接到 IIS Web 服务器。

FTP 服务器

FTP 服务器注意事项与以前版本的 IIS 相比没有变化。 若要仅安装 FTP 服务而不进行本地管理,请使用 IIS-FTPServer 更新。 若要安装 FTP 服务器的本地管理控制台,请使用 IIS-FTPManagement 更新。

Web 服务器

在这方面则更加有趣:IIS Web 服务器功能具有所有 IIS 功能中最高级别的可安装粒度。 正如前面有关 IIS 包更新的讨论中所述,Web 服务器功能区域内有五个主要功能分组:

  • IIS-CommonHttpFeatures – 对 HTTP 静态内容和错误消息提供基本支持。
  • IIS-ApplicationDevelopment – 对 IIS Web 服务器的应用程序扩展提供支持。
  • IIS-HealthAndDiagnostics – 支持日志记录、运行时状态和请求跟踪。
  • IIS-Security – 提供除匿名身份验证之外的其他身份验证和授权设施。
  • IIS-Performance – 提供静态和动态内容压缩。

上面的 IIS 包更新一节已对每个组中的 IIS 功能进行了讨论。你应该检查服务器应用程序需求并仅选择必需的 Web 服务器功能。

自定义安装示例

对于此示例,我们考虑配置一个具有以下属性的假设 Web 服务器:

  1. 需要支持静态内容但不希望支持目录浏览。
  2. 需要支持日志记录和运行时状态。
  3. 需要支持 ASP.NET。
  4. 需要支持远程管理。
  5. 需要支持 Windows 身份验证。
  6. 需要支持静态和动态内容压缩。

我们还将添加一个额外要求,即安装可以作为脚本部署到多个服务器。

现在,我们使用所需功能的列表以及 IIS 包更新部分中的更新说明来确定需要哪些 IIS 包更新

步骤 1:确定所需的更新

对于第 1 项,我们需要以下更新:

  • IIS-StaticContent
  • IIS-DefaultDocument
  • IIS-HttpErrors
  • IIS-HttpRedirect

我们还想确保未安装 IIS-DirectoryBrowsing(因为它是默认安装的一部分,请参阅第 4 节)。

对于第 2 项,我们需要以下更新:

  • IIS-HTTPLogging
  • IIS-RequestMonitor

对于第 3 项,我们需要 IIS-ASPNET 更新。

对于第 4 项,我们需要 IIS-ManagementService。

对于第 5 项,我们需要 IIS-WindowsAuthentication 更新。

最后,对于第 6 项,我们需要 IIS-HttpCompressionStatic 和 IIS-HttpCompressionDynamic 更新。

此时,我们获得了使用安装用户界面工具以及勾选所需的组件,并取消选中不需要的组件所需的信息。 但是,由于我们打算将此 Web 服务器配置部署到多个服务器,因此必须创建一个脚本来提供所需的包配置。 正如 IIS 包更新一节所述, 脚本必须显式声明要安装的功能更新的任何父和/或功能更新依赖项。

一次获取一个项的依赖项,以下小节介绍了此过程所需的操作。

步骤 2:确定父级和依赖项

对于第 1 项,我们需要以下父级更新:

  • IIS-WebServerRole
  • IIS-WebServer
  • IIS-CommonHttpFeatures

注意

Web 服务器的所有叶功能更新都具有共同的 IIS-WebServer 和 IIS-WebServerRole 父级。

对于第 1 项,我们还从 WAS 上的 IIS 依赖项部分了解,我们必须添加以下 WAS 更新:

  • WAS-WindowsActivationService
  • WAS-ProcessModel

注意

IIS-WebServer 下的所有更新都依赖于这些 WAS 更新。

对于第 2 项,父级更新为:IIS-HealthAndDiagnostics。 上述两条注释在此处都适用。

对于第 3 项,父级更新为:IIS-ApplicationDevelopment。 上述两条注释在此处都适用。 在 IIS 内部依赖项一节中,我们了解到 IIS-ASPNET 依赖于以下更新:

  • IIS-DefaultDocument
  • IIS-NetFxExtensibility
  • WAS-NetFxEnvironment
  • IIS-ISAPIExtensions
  • IIS-ISAPIFilter
  • IIS-RequestFiltering

对于第 4 项,父级更新为:IIS-WebServerManagementTools。 (以上注释在此处均不适用。)IIS 内部依赖项一节进一步说明了 IIS-ManagementService 依赖于以下更新。

  • IIS-ManagementConsole
  • WAS-NetFxEnvironment
  • WAS-ConfigurationAPI

对于第 5 项,父级更新为:IIS-Security。 (以上注释在此处均不适用。)

对于第 6 项,父级更新为:IIS-Performance。 (以上注释在此处均不适用。)

步骤 3:在父级中对更新进行分组

现在,我们获取所需更新及其父级和依赖项的列表,并将它们分组到以下列表中,根据需要将更新与其父级重新分组。 我们还将合并那些我们想要确保不安装的更新,并用星号(“*”)标记它们:

  • IIS-WebServerRole
  • IIS-WebServer
  • IIS-CommonHttpFeatures
  • IIS-StaticContent
  • IIS-DefaultDocument
  • IIS-DirectoryBrowsing*
  • IIS-HttpErrors
  • IIS-HttpRedirect
  • IIS-ApplicationDevelopment
  • IIS-ASPNET
  • IIS-NetFxExtensibility
  • IIS-ISAPIExtensions
  • IIS-ISAPIFilter
  • IIS-HealthAndDiagnostics
  • IIS-HTTPLogging
  • IIS-RequestMonitor
  • IIS-Security
  • IIS-WindowsAuthentication
  • IIS-RequestFiltering
  • IIS-Performance
  • IIS-HttpCompressionStatic
  • IIS-HttpCompressionDynamic
  • IIS-WebServerManagementTools
  • IIS-ManagementConsole
  • IIS-ManagementService
  • WAS-WindowsActivationService
  • WAS-ProcessModel
  • WAS-NetFxEnvironment
  • WAS-ConfigurationAPI

步骤 4:将更新列表放入 Unattend.xml 文件

在此步骤中,我们不会安装所有 IIS 功能,而是仅安装练习所需的功能,并为通常默认安装的更新设置标记属性 state="false"。 生成的 Unattend.xml 文件如下所示。

<xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 
        name="Microsoft-Windows-Foundation-Package" 
        version="6.0.5308.6" 
        language="neutral" 
        processorArchitecture="x86" 
        publicKeyToken="31bf3856ad364e35" 
        versionScope="nonSxS" 
/>

总结

Windows Vista 和 Windows Server 2008 安装中的新增功能:

  • Windows Server 2008 安装现在基于使用清单的声明性组件。
  • 操作系统版本是由这些组件组合而成。
  • Sysocmgr.exe 现在被 Pkgmgr.exe 取代,用于安装可选功能。
  • Windows Vista 和 Windows Server 2008 版本上的 IIS 版本相同。
  • 通过安装启用安全服务器 – 使用 IIS,不仅会禁用不需要的组件,甚至不会安装它们。

安装 IIS 7.0 及更高版本的多种方式:

  • 服务器 – 角色管理工具
  • Vista – 添加/移除 Windows 功能
  • 无提示 – 引用 IIS 清单的 Unattend.xml 文件
  • 升级 – 将操作系统就地升级到 IIS

适用于 IIS 的基于组件的安装的显著新优势:

  • IIS 使用 Windows 组件仅安装所需的模块。
  • 安装的模块使用安全默认值并被锁定。
  • IIS 减少了受攻击面并简化了服务。

请参阅以下资源以获取进一步信息: