Windows Server IIS 70 入门Word格式.docx
《Windows Server IIS 70 入门Word格式.docx》由会员分享,可在线阅读,更多相关《Windows Server IIS 70 入门Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
这种新方法的核心是IIS7.0的模块化体系结构。
IIS7.0采用的新设计使您能够选择将要安装到服务器上的功能,也称为模块。
这些模块直接插入到集成请求管道中。
这种新的模块化设计具有许多优势,包括减少攻击面和Web服务器的占用量。
IIS目前包含40个默认模块(例如,基本模块、匿名模块),而且Windows®
身份验证现在已成为能够独立添加到请求管道中的单独模块。
为简化分类,所有模块分成了八个子类别(请参阅图1)。
图1IIS7.0模块分为八个功能区域(单击该图像获得较大视图)
这意味着您现在可以构建与您的环境完全相符的自定义Web服务器。
但是,如果40个默认模块无法提供您需要的功能,比如某些种类的自定义身份验证或内容修饰符,应该怎么办呢?
没关系。
您可以通过本机或托管代码编写满足需要的模块,并将其插入到管道中。
这也使Microsoft能够独立编写和发布新模块,因此您不必等待下一个服务包或主要产品发布。
IIS7.0还赋予您使用自定义模块覆盖40个默认模块中任意模块的能力。
有关如何构建您自己的模块的详细信息,请访问IIS.net。
集成请求管道
将集成请求管道想象成一组基本的线性步骤,每次提供页面时都必须出现这些步骤(如图2所示)。
通常,必须进行某种身份验证,然后才能授权检索内容、确定和执行该内容所需的处理程序、执行任何必要的日志记录、最后发送响应。
集成请求管道使IIS7.0可以灵活地同时运行不同的应用程序框架。
例如,您可以在PHP内容之上运行窗体身份验证以及自定义的日志记录模块,所有这些均在同一个管道内实现。
图2IIS7.0集成管道和模块(单击该图像获得较大视图)
服务器上的每个网站都有集成请求管道,并且可通过两种模式(集成模式和经典模式)之一运行。
默认的集成模式允许将特定功能项插入到管道中,使您可以精细地控制请求过程。
出于兼容性考虑,经典模式通过将ISAPI模块插入管道来重现IIS6.0/ISAPI功能。
在将应用程序迁移到IIS7.0时,此模式非常有用。
默认安装
现在,让我们来讨论设置您的新模块化Web服务器。
如果查看IIS7.0的默认安装,您会注意到它仅包含10个模块(如果包含WindowsProcessActivationService)。
安装Web服务器角色时,IIS7.0安装提供IIS的基本功能,特别是只有那些提供类似纯HTML或经典ASP之类静态内容所需的模块。
之后在服务器上安装哪些模块完全由您决定。
以下是默认安装中所包含的功能:
∙常用HTTP功能,包括静态内容、默认文档、目录浏览和HTTP错误
∙运行状况和诊断功能,例如HTTP日志记录和请求监视器
∙安全功能,例如请求过滤
∙性能功能,例如静态内容压缩
∙管理工具,包括IIS管理控制台
∙WindowsProcessActivationService
如您所见,这只是最基本的服务器,不包括ASP.NET或其他IIS7.0新功能,例如诊断和故障排除功能。
在服务器上启动其他功能—例如提供类似ASP.NET和FastCGI(PHP)之类动态内容的功能—非常简单。
从WindowsServer®
2008服务器管理器内的Web服务器角色的“添加角色服务”中,选择一组要安装的模块。
新的配置存储
IIS7.0中使您的生活变得更加轻松的另一项主要变化是新的配置存储。
元数据库现在是为向后兼容而提供的可选安装组件,它已经由XML配置系统取代。
我知道您会说“但元数据库本来就是XML啊!
”是的,确实如此。
但它过于繁琐,而且不易于阅读(至少不易于人类阅读)。
它已由更为灵活的XML系统所取代。
与ASP.NET类似,IIS7.0使用.config文件—清晰、简单、便携且易读的.config文件。
转移到此格式意味着配置系统现在独立于计算机,不再像元数据库那样依赖于单个计算机。
因此,您现在可以轻松地将配置系统移动到其他服务器上,只需简单地使用拖放或xcopy即可。
此新配置系统还利用IIS7.0中称为“共享配置”的新功能解决了Web场的难题。
由于此新配置系统便于携带,因此您可在场内的所有节点中共享一个主.config文件。
“共享配置”允许您从已知工作情况良好的预生产服务器上导出配置,然后在生产或“实时”环境中共享该配置。
导出.config文件时,必须提供加密密钥密码。
这样做是为了保护.config文件,防止恶意Web服务器在非经授权的情况下尝试模仿您服务器的.config。
启用“共享配置”非常简单。
在IIS管理器的服务器节点中,选择位于任务窗格“管理”部分下的“共享配置”。
只需选中“启用共享配置”,提供要共享(通常是UNC共享)的配置的物理路径,然后输入访问该物理路径所需的凭据并单击“应用”即可。
找到.config文件时,将提示您输入加密密码。
完成该过程后,重新启动IIS管理器以便其拾取新的.config。
新配置系统的结构与过去所使用的结构不同,让我们先了解一下基础知识。
如图3所示,IIS7.0的配置分为两个类别:
服务器范围设置和站点特定的设置。
所有服务器范围设置均存储在applicationhost.config内,它位于%systemroot%\windows\system32\inetsrv\config中。
其中包括所有已安装的模块、服务器上的站点等。
站点特定的设置存储在单独的web.config文件中。
图3服务器范围设置使用一个.config文件,而此服务器上的每个网站都使用各自独立的配置文件
如果您曾经使用过ASP.NET,则可能熟悉web.config文件。
IIS7.0使用web.config文件来存储特定于各个网站的设置,例如站点的默认文档和应用程序设置,以及ASP.NET设置。
这意味着您需要为服务器上的每个站点提供一个web.config文件。
站点的web.config文件位于该站点的物理路径中,例如%systemroot%\inetpub\wwwroot。
此设计同样具有前面所述的便携优势,但它在站点级别使用。
例如,您可以在测试服务器上简单地部署一个站点,然后通过拖放或xcopy将站点的web.config和应用程序文件移到生产服务器上。
无论何时导入或共享.config文件,均需注意特定于计算机的信息,如IP地址和驱动器盘符。
IIS7.0通过支持OS环境变量(如%systemroot%)解决了该潜在问题。
此外,确保安装在测试和生产服务器上的模块组相同。
这将有助于避免不可预料的应用程序错误。
如果web.config引用了尚未安装的模块,或者默认模块与自定义模块冲突,也会发生错误。
管理您的Web服务器
现在,您已部署好了功能强大、自定义、灵活且便携的新Web服务器。
如何对其进行管理呢?
管理是规划和构建IIS7.0的重要部分,有多种方法可以处理管理工作。
共有以下三种类别,管理首选项通常归入到至少一种类别中:
在UI中使用鼠标管理、在命令提示符处输入命令,以及编写脚本以尽可能地实现自动化。
让我们首先介绍UI。
在IIS6.0中,UIMicrosoft®
管理控制台(MMC)管理单元有两种熟悉的基本视图:
树视图和选项卡视图。
要详细查看某项设置,需右键单击并选择“属性”,然后您将看到一组选项卡(未涉及单选按钮和复选框)。
令人高兴的是,在IIS7.0中,UI已彻底改观。
此称为“IIS管理器”的新UI旨在启用面向任务的方法,如图4所示。
此外,还为下级客户端(如WindowsXP和WindowsServer2003)提供“远程管理器”,该管理器可从IIS.net/downloads下载。
图4IIS7.0中的新UI
新用户界面由左侧的“连接”窗格、右侧的“操作”窗格,以及中间的任务窗格或工作区组成。
左侧的连接管理器树与IIS6.0树视图类似,其中包含许多父节点和子节点。
树视图的新功能是可以创建新连接、保存当前连接或删除现有连接。
任务窗格是UI的最大改进,它提供了两种工作视图。
功能视图从原来的“选项卡”视图中提取所有可配置的IIS属性,并将它们按照管理区域(例如IIS、管理和安全)分组。
ASP.NET属性也已集成到IIS管理器中,从而无需再使用额外的MMC管理单元。
每个可配置属性都具有它自己的图标,因此便于查找。
同时,因为IIS管理器是作为WindowsForms应用程序而构建的,所以您可以轻松地为所编写的任何自定义模块或功能添加插件图标。
任务窗格的第二种视图是内容视图,其与IIS6.0非常相似,在此类视图中,您可以看到站点内容目录中的内容并可根据此内容执行操作。
为该视图提供的新功能是选择特定内容(例如特定网页),然后切换到功能视图以调用选定内容上的某些设置,该功能为您提供了直至页面级的精细控制。
其他管理方式
对于那些喜欢使用命令行的人而言,利用称为APPCMD.exe的功能强大的新工具,既能够执行类似停止站点或备份当前.config文件之类的简单任务,也能够执行类似搜索配置架构之类的复杂任务。
其语法十分简单:
APPCMD(command)(object-type).
要列出可用于APPCMD的所有对象,请键入:
APPCMD/?
或者,如果您希望查看特定对象类型的可用命令,请输入:
APPCMD(object-type)/?
对于所有编码员而言,IIS7.0中已增加了称为Microsoft.Web.Administration的托管代码API,以及一个新的WindowsManagementInstrumentation(WMI)提供程序。
这两种方法为脚本、自动化和编写工具管理IIS7.0提供了大量选项。
它们均可与WindowsPowerShell®
配合使用,并且WMI提供程序还可与VBScript和JScript®
配合使用。
有关其他信息,请参阅
远程管理和委派管理
IIS7.0提供了多种新方法来远程管理服务器、站点、Web应用程序,以及非管理员的安全委派管理权限。
首先,让我们讨论一下新的远程管理功能,以及它们如何使您的生活变得更加轻松。
过去,远程管理IIS服务器的方法有两种:
通过使用远程管理网站或使用远程桌面/终端服务来访问UI。
但是,如果您在防火墙之外或不在现场,则这些选项作用有限。
IIS7.0通过在UI中直接构建远程管理功能(通过不受防火墙影响的HTTPS工作)来对此进行补救。
IIS7.0中的远程管理可以在多个方面简化工作。
首先,您可以获得与本地登录相同的UI体验。
其次,由于使用HTTPS协议进行通信,因此无需在防火墙上开放端口。
最后,您现在可以在单个UI中管理多台服务器,而不必同时打开多个远程桌面或远程网站窗口。
IIS7.0中的实际远程管理服务在本质上是一个小型Web应用程序,它作为单独的服务、在名为NTService\WMSVC的WindowsNT®
本地服务账户下运行。
此设计使得即使在IIS服务器自身无响应的情况下仍可维持远程管理功能。
与IIS7.0中的大多数功能类似,出于安全性考虑,远程管理并不是默认安装的。
要安装远程管理功能,请将Web服务器角色的角色服务添加到WindowsServer2008的服务器管理器中,该管理器可在“管理”工具中找到。
安装此功能后,还必须启用远程连接并启动WMSVC服务,因为该服务在默认情况下处于停止状态。
WMSVC服务的默认启动设置为手动。
如果希望该服务在重启后自动启动,则需要将设置更改为自动。
可通过在命令行中键入以下命令来完成此操作:
scconfigWMSVCstart=auto
当通过管理服务启用远程连接时,您将看到一个设置列表,其中包含如“身份凭据”、“连接”和“IPV4地址限制”之类的设置。
此时,唯一的关键决策是确定为哪组身份凭据授予连接到IIS7.0的权限:
仅限Windows凭据,还是Windows和IIS管理器凭据。
第一个选项比较直观,指出您希望仅允许Windows用户帐户,本地和域帐户均可。
第二个选项包括Windows用户和IIS7.0中全新提供的一种与Windows用户帐户不关联的帐户类型:
IIS管理器用户。
有了IIS管理器用户,管理员可以创建仅在IIS7.0的上下文中已知、但无法访问OS的用户帐户。
最后,在默认情况下,IIS会在开始时提供一个自签名证书,但建议您添加有效签名的SSL证书。
现在只需应用您的设置并启动服务即可。
为了获取更多控制和安全性,IT管理员可以安全地将各个站点或Web应用程序的管理任务委派给非管理员。
委派管理实质上是远程管理,但它限制对各个站点或Web应用程序的访问范围。
IIS管理器用户功能此时显得尤为方便。
您可以为那些一次性站点所有者创建IIS用户,并委派他们管理自己的站点或应用程序的权限。
他们无法访问服务器范围设置,仅限于访问其特定站点或Web应用程序的设置。
您还可以指定用户可以更改哪些功能和设置,甚至指定UI中应该出现哪些内容。
例如,如果您不希望某人更改其站点所使用的身份验证类型,则可将此功能设置为只读或非继承。
当某项功能为只读时,用户仍然可以访问该功能并确定设置,但无法进行更改;
如果设置为非继承,则该功能的图标将不会出现在委派用户的IIS管理器视图中。
此类功能委派可以让您提供对其他内容的严格受控访问,而无需提供对Web服务器的管理控制。
IIS7.0的发展
设计IIS7.0时,设计团队希望通过允许使用管理工具中的某些现有投资和IIS6.0的脚本来确保迁移到IIS7.0的过程尽可能地平稳。
他们为IIS7.0的向后兼容性付出了许多努力,从而使其能够继续运行IIS6.0所使用的脚本。
您可在安装中的IIS6.0管理兼容性节点下安装一整套工具—范围从IIS6.0元数据库兼容性到实际的IIS6.0管理控制台。
IIS6.0元数据库兼容性基础结构使用称为ADOMapper的组件。
它允许您根据新配置系统运行IIS6.0管理基础对象(ABO)和ADSI(ActiveDirectory服务接口)元数据库脚本,但仅限于使用IIS6.0中提供的功能。
因此,它不能读写新的IIS7.0属性、访问新的运行时数据,或者读写ASP.NET属性或web.config文件。
故障排除和诊断
故障排除和诊断一直是最耗时的工作。
深入分析日志并尝试重现大型Web场,甚至单个服务器中的问题都是非常棘手的工作。
IIS7.0中包含一个称为“失败请求跟踪”的工具,可帮助您从枯燥而费时的工作中解脱出来。
它在许多情况下非常有用,包括请求挂起或程序出错,以及调查身份验证和授权问题。
“失败请求跟踪”使用跟踪规则作为条件来搜索错误。
可以创建跟踪规则,以通过指定希望跟踪的内容类型(例如,服务器上的所有内容、仅ASP.NET内容或诸如PHP等自定义内容),以及在何种条件下应开始跟踪(例如,特定的返回状态代码、提供页面所用的时间、事件严重性或组合条件)来搜索行为或错误的类型。
例如,假设用户报告某站点的加载时间过长。
在任何情况下,此情形都难以重现,特别是当每小时有数千次点击时更是如此。
使用“失败请求跟踪”,您只需添加跟踪规则,指定当页面加载时间超过某个指定时间量(例如,对于本例为两秒)时开始记录,之后便可以等待服务器自己去重现问题(请参阅图5)。
图5使用“失败请求跟踪”进行故障排除
“失败请求跟踪”与传统日志记录的不同之处在于:
前者仅在检测到特定的失败请求条件时才会进行记录。
日志文件本身是具有XML样式表的XML,从而使其清晰、易读。
与大多数其他IIS7.0功能类似,此功能在默认情况下不会安装,但可在安装的运行状况和诊断部分下找到。
您还必须在IIS管理器中启用该功能。
对于所有管理员而言,IIS7.0是一大飞跃。
它的新体系结构和功能为适应不断变化的环境提供了所需的敏捷性和灵活性。
有了管理功能、向后兼容性工具和故障排除功能,您如今可以对其进行部署并在您的现有环境中使用它。
IsaacRoybal是MicrosoftWindowsServer的产品经理。
他负责WindowsServer中与Web相关的所有事宜。
Isaac从WindowsNT3.51和IIS4.0开始就从事WindowsServer方面的工作。
在此之前,他是OfficeInternet平台和运营组的运营项目经理。
他已获得WindowsNT4.0、Windows2000和WindowsServer2003的MCSE认证。