Windows Server 2003中包含一个最新版本的Internet信息服务器(IIS,版本6.0)。IIS在Windows Server 2003中作为一个企业服务程序运行,并使用Windows Server 2003提供的其他服 务,例如,安全和Active Directory服务。IIS 6.0改进了Web服务器的可靠性、性能、易管理、安全性和应用服务。许多性能的改进是IIS 6.0与Windows Server 2003操作系统的新特性相结合的结果。
本章主要内容
& 安装和配置IIS 6.0及其组件的方法
& 配置网站的方法
& 创建与配置FTP服务器虚拟目录、主属性
& 邮件服务器的工作原理
& 设置SMTP和POP3服务的方法
Microsoft Windows Server 2003中的Internet信息服务(IIS)提供了可用于Intranet、Internet或Extranet上的集成Web服务器能力,这种服务器具有可靠性、可伸缩性、安全性及可管理性的特点。可以使用IIS 6.0为动态网络应用程序创建功能强大的通信平台。任何规模的组织都可以使用IIS主持和管理Internet或Intranet上的网页及文件传输协议(FTP)站点,并使用网络新闻传输协议(NNTP)和简单邮件传输协议(SMTP)路由新闻或邮件。IIS 6.0充分利用了最新的Web标准(如ASP.NET、可扩展标记语言——XML和简单对象访问协议——SOAP)来开发、实施和管理Web应用程序。IIS 6.0提供了一些新功能来帮助组织、IT专业人士和Web管理员为单个IIS服务器或多个服务器上可能存在的上千个网站实现高性能、可靠性、可伸缩性和安全性的目标。
IIS 6.0使用一种新的处理请求体系结构和隔离应用程序环境,使得单个Web应用程序可以在一个自包含的工作进程中发挥作用。这种环境可以防止一个应用程序或网站停止另一个应用程序或网站,并且可缩短管理员为了纠正应用程序问题而重新启动服务所需的时间。这种新环境还提供了具有前瞻性的应用程序运行状况监控功能。
可将IIS 6.0配置为在工作进程隔离模式(在隔离环境中运行所有进程)或者IIS 5.0隔离模式(可在其中运行与工作进程隔离模式不兼容的Web应用程序)下运行。在工作进程隔离模式中,可将任何内容(从单个Web应用程序到多个站点)隔离到其各自的自我包含的WWW服务工作进程中,以防一个应用程序或站点停止另一个应用程序或站点。如果将应用程序或站点隔离到单独的进程中,将简化许多管理任务。
在工作进程隔离模式中,工作进程处理所有用户代码,并完全与核心的WWW服务Inetinfo.exe隔离。因为这些ISAPI应用程序与WWW服务单独运行。所以,当应用程序失败时,可防止WWW服务主控的所有服务也失败。只有宿主ISAPI应用程序的工作进程受到影响。可将工作进程配置为在特定CPU上运行,从而允许更好地控制对系统资源的平衡。
工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有一个唯一的配置。因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。
在工作进程隔离模式下,可配置应用程序池为任何内容提供服务——从一个Web应用程序到多个应用程序或多个站点。将应用程序分配给应用程序池允许管理员进一步隔离应用程序,只需在配置数据库中配置应将应用程序路由到哪个池即可。在默认情况下,站点被视为一个简单的应用程序,在这里,根目录的名称空间“/”作为应用程序配置。
在工作进程隔离模式下运行时,对于应该排在HTTP协议堆栈(HTTP.sys)中每个应用程序池的请求,可选择限制请求数。这允许用户通过管理应用程序池请求和系统资源更好地调整应用程序的运行环境。
Web也是一种应用程序池,其中有多个为路由到该池的请求提供服务的工作进程。每个应用程序池都配置为与指定的工作进程关联。另外,还可以通过在工作进程和处理器之间建立关系来提高Web 应用程序在工作进程隔离模式下的可伸缩性,这样,在多处理器服务器上,锁定一个进程就不会影响任何其他进程。
如果某个应用程序池中的工作进程失败,则IIS 6.0内核模式驱动程序HTTP.sys会将面向该池的请求放在队列中。如果WWW服务管理这些进程,则WWW服务可初始化其他进程,而不中断对用户提供的服务。请求会从队列中发送,直到队列变空或者直到WWW服务被停止。
在工作进程隔离模式中,WWW服务监视工作进程的运行状况,如果该进程不响应,会终止该进程并替换为另一个进程。运行状况监视有助于使进程保持运行并向用户提供更可靠的服务。
可通过以下方法控制系统资源:将工作进程隔离模式下的应用程序池配置为让它们的工作进程在空闲一定时间后请求关闭,该时间(如分钟、小时或天)可进行设置,当IIS收到该应用程序池的请求时,可请求强制启动应用程序。
可将IIS配置为在工作进程隔离模式下使用快速失败保护来在特定应用程序池发生多次连续失败时自动禁用应用程序池。
如果一个工作进程无法响应来自WWW服务管理和监视组件的查询,则可以将它在工作进程隔离模式下配置为与应用程序池分离,而不是终止它,并启动一个新工作进程来代替它。因为该进程仍在运行,所以可针对它执行诊断。
可将IIS配置为在工作进程隔离模式下定期重新启动应用程序池中的工作进程。当启动新进程时,它将任何请求接收到该应用程序池,以前的工作进程同时完成它在队列中的请求。回收工作进程无须中断对用户提供的服务就可管理有问题的应用程序(如有内存泄漏的程序)。
新一代应用程序对Web服务器的性能和可伸缩性提出了更高的要求。如果增加HTTP请求的处理速度并允许在一个服务器上运行更多的应用程序和站点,则可以直接减少宿主站点所需的服务器。
下面给出了Windows Server 2003中的IIS 6.0的性能特点。
(1)Windows Server 2003中的超文本传输协议(HTTP)栈以一个名为HTTP.sys的内核模式设备驱动程序形式来实现。HTTP.sys是Windows Server 2003所特有的新功能,它是网络子系统的一部分。IIS是一个用户模式进程,它与内核处理在完全不同的执行模式下运行。HTTP.sys是所有传入(服务器端)HTTP请求的单个联系点,它为HTTP服务器应用程序提供高性能的连接性。HTTP.sys还负责进行总体连接管理、带宽控制和基于文本的日志记录。HTTP.sys实现灵活的通用资源标识符(URI)响应缓存(名为可伸缩缓存),允许HTTP应用程序完全在内核模式(而不转换到用户模式)下缓存静态数据并为缓存的HTTP请求提供服务。HTTP.sys实现一个名为应用程序池的URI名称空间映射机制。利用应用程序池,HTTP应用程序可声明URI名称空间的多个部分,从而允许HTTP.sys将HTTP请求直接路由到相应的HTTP应用程序。基于以下这些更改,IIS已经提高了多处理器计算机的吞吐量和可伸缩性。
· 单个IIS 6.0 服务器可以主控的站点数。
· 同时活动的工作进程数。
· 启动/关闭次数。
(2)Active Server Pages(ASP)处理包含ASP脚本的模板,将处理过的模板存储在缓存中并充当客户的缓存模板。在默认情况下,可在内存中缓存250个模板。如果一个站点大量使用ASP,则该内存中模板缓存不能存储所有必需的模板。IIS包括持续的缓存,因此如果内存中缓存的空间不足时,会将模板缓存到磁盘中。如果再次请求该ASP页,则Asp.dll无须重新编译源代码即可从磁盘中加载编译过的模板。因为缓存的ASP模板不会在每次调用时都进行处理,所以ASP模板缓存增强了性能。通过更改具有低(进程中)应用程序保护和中(共用)应用程序保护的所有应用程序的缓存模板数,或者单独更改具有高(独立)应用程序保护的应用程序的缓存模板数,可进一步改善性能。
(3)IIS异步处理通用网关接口(CGI)实现,从而消除了阻挡CGI处理响应的可能。
(4)IIS的容量计划跟踪功能针对ASP脚本资源的使用情况(如HTTP响应/请求次数)来跟踪应用程序的工作负荷。可在不同的工作负荷和不同的硬件配置下收集和分析事件跟踪数据,然后使用这些数据帮助计划容量。
(5)集中的二进制日志记录允许以不带格式的二进制方式将多个站点写入单个日志文件中。因为数据不必设置为任何特定格式(如W3C扩展、IIS或NCSA格式),所以这种日志记录格式改善了性能。利用Microsoft SQL Server的支持,多台计算机可将日志放在一个集中的数据库中。
(6)服务质量(QoS)包含一组方法或进程,基于服务的组织实现它们以维护特定的质量级别。在Windows环境中,QoS是一组服务要求,网络必须满足这些要求才能确保适当服务级别的数据传输。QoS的目标是为了确保特定站点或应用程序不独占服务器资源,如内存或CPU周期。管理员可以通过用IIS实现的连接限制和超时、应用程序池队列长度限制、带宽控制和进程记账来控制,为用户提供服务的级别和质量。
(7)如果Web服务器使用的网络或Internet连接也被其他服务使用,例如,电子邮件或新闻,则可能希望限制带宽以便带宽可用于其他服务。如果Web服务器作为多个网站的宿主,管理员可以单独控制每个站点使用的带宽。
(8)CPU监视是一个用来监视和自动关闭占用大量CPU资源的工作进程的工具。CPU监视针对单个应用程序池启用。CPU监视工具还有助于确定哪些站点具有不能正常运行的脚本或CGI进程。
在x86系统上,IIS 6.0可配置为最多缓存64GB。
IIS 6.0提供了多种安全功能和技术,可以使用这些功能和技术确保网站及FTP站点内容的完整性,以及由这些站点传输的数据的完整性。
默认情况下,IIS没有安装在运行Windows Server 2003操作系统的计算机上。这可以防止管理员无意中安装该服务。Windows Server 2003操作系统包含一种新的组策略:禁止安装IIS,该策略允许域管理员控制哪些运行Windows Server 2003的服务器允许安装IIS。
为了保护服务器免受恶意用户的攻击,从运行Windows 2000的计算机进行升级期间会禁用WWW发布服务。可以用“服务”管理单元启用WWW发布服务。
IIS 6.0是以高度安全和锁定模式安装的。默认情况下,IIS 仅服务于静态内容,这意味着Active Server Pages(ASP)、ASP.NET、索引服务、在服务器端的包含文件(SSI)、Web分布式创作和版本控制(WebDAV)、FrontPage Server Extensions等功能将不会工作,除非管理员启用它们。如果未在安装IIS后启用这些功能,IIS会返回404 错误。要服务于动态内容并解除这些功能的锁定,必须使用IIS管理器启用这些功能。管理员可以根据组织需要启用或禁用IIS功能。同样,如果应用程序扩展未被映射到IIS中,IIS也会返回404错误。
IIS 6.0还提供了多种功能来保护应用程序服务器的安全,这些功能包括:
· 身份验证机制,包括新的高级摘要身份验证在内。
· URL授权,它向特定的URL提供基于角色的授权。
· 安全套接字层(SSL)3.0,提供了一种交换信息的安全方法。
· 可选择的加密服务提供程序,允许管理员和开发者选择适合需要的加密服务提供程序(CSP)。