如果计划使用 Windows Server 2003 作为网站和动态 Web 应用程序的宿主,则会发现新平台上的“ Internet 信息服务”( IIS )已有一些重大改变。 IIS 版本 6 包括在安全性、可靠性、可伸缩性、可管理性和性能等领域的功能提升。如果想从新版本中获益,理解这些改变是至关重要的。
将 IIS 的讨论放到附录中来进行,是因为在 Windows Server 2003 中 IIS 通常是非默认安装的一个可选组件。例外的是 Web 版默认安装了 IIS 及其许多子组件。 Web 版是一个专门的产品,只有通过 OEM 渠道预安装才可获得,因此在这里我们关注的焦点是 Windows Server 2003 的标准版和企业版。
A.1 IIS 6 的新功能
首先简单综述一下 IIS 6 的新功能,这些新功能主要是体系结构、安全和可管理性方面的改进。之后将解释如何执行一些基本任务,例如,创建、配置网站和应用程序等,包括如何使用由该平台支持的各种各样的新功能。
如果阅读本附录后想更多地了解 IIS 6 ,则可从 McGraw-Hill/Osborne 购买一本 IIS 6 Administration 书作为参考,它包括对 IIS 6 各个方面的综合阐述以及在管理新平台中许多动手实践的指导。
A.1.1 增强的体系结构
或许在 IIS 6 版本中最根本的改变就是体系结构。前一版本(基于 Windows 2000 Server 平台的 IIS 5 ),允许 Web 应用程序在以下 3 种不同的应用程序保护级别中运行:
· 低级( IIS 进程)。应用程序在进程中运行,即在核心 IIS Admin ( inetinfo.exe )进程本身下运行。
· 中级(汇集的)。作为一个在名为 dllhost.exe 的 COM+ 宿主进程中的汇集的进程,应用程序与其他应用程序一同运行。
· 高级(隔离的)。应用程序在自己的宿主进程 dllhost.exe 中,在进程外单独运行。
IIS 5 模型有以下局限性:
· 如果在低级保护级别中运行的应用程序失败,则可能引起 inetinfo.exe 挂起,导致整个 Web 服务器性能下降。
· 与汇集的应用程序相比,运行于高级保护级别的应用程序有较高的系统开销,执行时性能较差。
· 限制了宿主 web 应用程序的服务器的可伸缩性,只有一个应用程序池被支持。
为了处理这种局限性, IIS 6 体系结构被重新设计,以便所有的应用程序可作为汇集的进程来运行,支持多个池而不仅仅是一个。这意味着用户开发的代码不在进程中运行,因此有故障的应用程序不再降低服务器的性能。下面介绍所有这些是如何工作的。
隔离模式
IIS 6 有双重体系结构,可在以下两种模式之一中运行:
· IIS 5 隔离模式。这一模式模仿了 IIS 5 ,因此为较早的 Windows 2000 Server 平台开发的应用程序能运行在 Windows Server 2003 上而不出现问题。
· 工作进程隔离模式。这一模式支持所有的 IIS 6 体系结构增强,包括应用程序池、 Web 园、运行状况监视、工作进程回收和处理器绑定等。
如果执行 Windows Server 2003 独立安装,然后安装 IIS 6 组件,则服务器将以工作进程隔离模式运行。如果升级一个运行 IIS 5 的 Windows 2000 Server 机器,则服务器将以 IIS 5 隔离模式运行。如果决定进行升级,则升级后应检测 Web 应用程序;如果它们正确运行,则切换到工作进程隔离模式,在这个模式下利用新功能。
应用程序池
在 IIS 5 中,默认情况下应用程序在一个称为 svchost.exe 的宿主进程中以中级(汇集的)保护级别运行。在 IIS 6 工作进程隔离模式下,应用程序可被组合为多个称为应用程序池的池,每个应用程序池由一个或多个工作进程(例如, w3wp.exe )来服务。每个应用程序池可被单独配置,且应用程序可从一个池中移动到另一个池中。结果是增加了可靠性,因为失败的应用程序只能影响同一池中的另一个应用程序,而不能影响其他池中的应用程序。
核心模式排队
为了提高 IIS 的功能, HTTP 请求的处理被转移到一个称为 HTTP 侦听器( http.sys )的新核心模式组件,该组件驻留在服务器的 TCP/IP 堆栈中。输入请求排队等待处理,每个应用程序池有自己的独立队列。这增加了 IIS 的可靠性,因为即使应用程序失败,输入请求仍继续排队。一旦应用程序又一次被在线产生,可从队列中获得请求而什么也不会丢失。
IIS 日志现在在核心模式执行,使用 http.sys 可获得增强的性能。
Web 园
IIS 6 的另一个新功能是支持 Web 园。 Web 园是由多个工作进程服务的应用程序池,一旦某个进程意外终止,这些进程可共享负载和提供容错。 Web 园也增加了 IIS 6 的可伸缩性,允许单个服务器同时宿主成千上万的应用程序,从而成为服务提供程序环境的极佳宿主平台。
工作进程回收
应用程序有时包含某些错误代码,错误代码可引起内存泄露或其他错误条件。为了使这些应用程序运行, IIS 早期版本不得不定期重新启动,在 IIS 6 中称为 工作进程回收 的新功能消除了这种需要。管理员可以将容易出错的应用程序的工作进程配置为定期重新启动,以防止内存严重泄漏或导致应用程序的崩溃。回收还可以配置为在旧进程终止前启动新工作进程,一个称为 重叠回收 的功能能为客户提供不中断的服务。
按需启动和空闲超时
为了保留有价值的处理器和内存资源, IIS 6 实现了按需启动。利用这一功能,应用程序接到首个 HTTP 请求前,与应用程序池有关的工作进程不会被启动。 IIS 6 也支持空闲超时,这一功能在可配置时间间隔后能够关闭空闲工作进程,释放未使用的资源用于其他进程。
运行状况监视,孤立和快速失败保护
工作进程由 Web 管理服务( Web Administration Service , WAS )管理, IIS 6 的一个新功能是实现为 WWW 服务的一个组件。除了回收工作进程, WAS 定期 ping 工作进程,以监视它们的运行状况。当工作进程阻塞或不能响应时, WAS 将终止该进程,并启动一个新的进程来替代它。换句话说,当 WAS 启动了一个替代进程时,它可被配置为离开未响应的进程运行。这在调试程序能够连接到孤立进程以确定什么地方出错的开发场景下非常有用。如果一个应用程序漏洞百出,以至工作进程重复挂起,则可用一个称为 快速失败保护 的功能将该应用程序池中止服务直到问题被解决。
处理器关系
IIS 6 的一个附加功能是增强了对称多处理器( symmetric multiprocessing , SMP )硬件平台的支持。使用处理器绑定,个人工作进程可以指派专用 CPU ,以增强大型关键任务应用程序的性能。
XML 配置数据库
配置数据库( metabase )即存储 IIS 配置信息的文件,已从早期版本中的二进制格式转化为 IIS 6 中的纯文本 XML 文件。这种转变使配置数据库更易于编辑(可以使用像 Notepad 一样简单的文本编辑器),且使 IIS 重新启动时间更短。也包括以下新功能:
· 运行时编辑。在 IIS 正运行的时候,具有直接编辑配置数据库的能力。
· 配置数据库的历史。跟踪所有对配置数据库所做的更改的功能,以及当配置出错时简化还原 IIS 的功能。
· 独立于服务器的备份。通过创建一个受密码保护的配置数据库备份,可以将整个 IIS 配置复制到另一台机器,从而可以轻而易举地克隆 IIS 配置以进行更快的部署。
|