远程管理和委派管理
IIS 7.0 提供了多种新方法来远程管理服务器、站点、Web 应用程序,以及非管理员的安全委派管理权限。首先,让我们讨论一下新的远程管理功能,以及它们如何使您的生活变得更加轻松。
过去,远程管理 IIS 服务器的方法有两种:通过使用远程管理网站或使用远程桌面/终端服务来访问 UI。但是,如果您在防火墙之外或不在现场,则这些选项作用有限。IIS 7.0 通过在 UI 中直接构建远程管理功能(通过不受防火墙影响的 HTTPS 工作)来对此进行补救。
IIS 7.0 中的远程管理可以在多个方面简化工作。首先,您可以获得与本地登录相同的 UI 体验。其次,由于使用 HTTPS 协议进行通信,因此无需在防火墙上开放端口。最后,您现在可以在单个 UI 中管理多台服务器,而不必同时打开多个远程桌面或远程网站窗口。
IIS 7.0 中的实际远程管理服务在本质上是一个小型 Web 应用程序,它作为单独的服务、在名为 NT Service\WMSVC 的 Windows NT® 本地服务账户下运行。此设计使得即使在 IIS 服务器自身无响应的情况下仍可维持远程管理功能。
与 IIS 7.0 中的大多数功能类似,出于安全性考虑,远程管理并不是默认安装的。要安装远程管理功能,请将 Web 服务器角色的角色服务添加到 Windows Server 2008 的服务器管理器中,该管理器可在“管理”工具中找到。安装此功能后,还必须启用远程连接并启动 WMSVC 服务,因为该服务在默认情况下处于停止状态。
WMSVC 服务的默认启动设置为手动。如果希望该服务在重启后自动启动,则需要将设置更改为自动。可通过在命令行中键入以下命令来完成此操作:
| sc config WMSVC start=auto |
当通过管理服务启用远程连接时,您将看到一个设置列表,其中包含如“身份凭据”、“连接”和“IPV4 地址限制”之类的设置。此时,唯一的关键决策是确定为哪组身份凭据授予连接到 IIS 7.0 的权限:仅限 Windows 凭据,还是 Windows 和 IIS 管理器凭据。
第一个选项比较直观,指出您希望仅允许 Windows 用户帐户,本地和域帐户均可。第二个选项包括 Windows 用户和 IIS 7.0 中全新提供的一种与 Windows 用户帐户不关联的帐户类型:IIS 管理器用户。有了 IIS 管理器用户,管理员可以创建仅在 IIS 7.0 的上下文中已知、但无法访问 OS 的用户帐户。最后,在默认情况下,IIS 会在开始时提供一个自签名证书,但建议您添加有效签名的 SSL 证书。现在只需应用您的设置并启动服务即可。
为了获取更多控制和安全性,IT 管理员可以安全地将各个站点或 Web 应用程序的管理任务委派给非管理员。
委派管理实质上是远程管理,但它限制对各个站点或 Web 应用程序的访问范围。IIS 管理器用户功能此时显得尤为方便。您可以为那些一次性站点所有者创建 IIS 用户,并委派他们管理自己的站点或应用程序的权限。他们无法访问服务器范围设置,仅限于访问其特定站点或 Web 应用程序的设置。
您还可以指定用户可以更改哪些功能和设置,甚至指定 UI 中应该出现哪些内容。例如,如果您不希望某人更改其站点所使用的身份验证类型,则可将此功能设置为只读或非继承。当某项功能为只读时,用户仍然可以访问该功能并确定设置,但无法进行更改;如果设置为非继承,则该功能的图标将不会出现在委派用户的 IIS 管理器视图中。此类功能委派可以让您提供对其他内容的严格受控访问,而无需提供对 Web 服务器的管理控制。
IIS 7.0 的发展
设计 IIS 7.0 时,设计团队希望通过允许使用管理工具中的某些现有投资和 IIS 6.0 的脚本来确保迁移到 IIS 7.0 的过程尽可能地平稳。他们为 IIS 7.0 的向后兼容性付出了许多努力,从而使其能够继续运行 IIS 6.0 所使用的脚本。您可在安装中的 IIS 6.0 管理兼容性节点下安装一整套工具—范围从 IIS 6.0 元数据库兼容性到实际的 IIS 6.0 管理控制台。
IIS 6.0 元数据库兼容性基础结构使用称为 ADOMapper 的组件。它允许您根据新配置系统运行 IIS 6.0 管理基础对象 (ABO) 和 ADSI(Active Directory 服务接口)元数据库脚本,但仅限于使用 IIS 6.0 中提供的功能。因此,它不能读写新的 IIS 7.0 属性、访问新的运行时数据,或者读写 ASP.NET 属性或 web.config 文件。
故障排除和诊断
故障排除和诊断一直是最耗时的工作。深入分析日志并尝试重现大型 Web 场,甚至单个服务器中的问题都是非常棘手的工作。IIS 7.0 中包含一个称为“失败请求跟踪”的工具,可帮助您从枯燥而费时的工作中解脱出来。它在许多情况下非常有用,包括请求挂起或程序出错,以及调查身份验证和授权问题。
“失败请求跟踪”使用跟踪规则作为条件来搜索错误。可以创建跟踪规则,以通过指定希望跟踪的内容类型(例如,服务器上的所有内容、仅 ASP.NET 内容或诸如 PHP 等自定义内容),以及在何种条件下应开始跟踪(例如,特定的返回状态代码、提供页面所用的时间、事件严重性或组合条件)来搜索行为或错误的类型。
例如,假设用户报告某站点的加载时间过长。在任何情况下,此情形都难以重现,特别是当每小时有数千次点击时更是如此。使用“失败请求跟踪”,您只需添加跟踪规则,指定当页面加载时间超过某个指定时间量(例如,对于本例为两秒)时开始记录,之后便可以等待服务器自己去重现问题(请参阅图 5)。
图 5 使用“失败请求跟踪”进行故障排除
“失败请求跟踪”与传统日志记录的不同之处在于:前者仅在检测到特定的失败请求条件时才会进行记录。日志文件本身是具有 XML 样式表的 XML,从而使其清晰、易读。与大多数其他 IIS 7.0 功能类似,此功能在默认情况下不会安装,但可在安装的运行状况和诊断部分下找到。您还必须在 IIS 管理器中启用该功能。
对于所有管理员而言,IIS 7.0 是一大飞跃。它的新体系结构和功能为适应不断变化的环境提供了所需的敏捷性和灵活性。有了管理功能、向后兼容性工具和故障排除功能,您如今可以对其进行部署并在您的现有环境中使用它。
Isaac Roybal 是 Microsoft Windows Server 的产品经理。他负责 Windows Server 中与 Web 相关的所有事宜。Isaac 从 Windows NT 3.51 和 IIS 4.0 开始就从事 Windows Server 方面的工作。在此之前,他是 Office Internet 平台和运营组的运营项目经理。他已获得 Windows NT 4.0、Windows 2000 和 Windows Server 2003 的 MCSE 认证。

RSS订阅