设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> 网管专栏 >> WEB服务 >> 正文
最新信息
·windows 2003服务器的iis6…
·解决w3wp.exe内存占用问题…
·IIS服务、ASP.NET引擎以及…
·保护Internet信息服务(IIS…
·提高IIS 5.0网站服务器的执…
·如何用IIS建立高安全性Web…
·如何启用iis的带宽限制
·彻底掌握IIS6.0功能及应用…
·彻底掌握IIS6.0功能及应用…
·DZ论坛在WIN服务器下不能使…
资料搜索
热点信息
·为网站设置自定义404错误页…
·重启iis提示不支持此接口的…
·如何启用iis的带宽限制
·DZ论坛在WIN服务器下不能使…
·DCOM出错 BA126AD1-2166-1…
·IIS常见返回错误编号
·IIS监控--自动重启脚本工具
·IIS性能优化
·在Win2003下配置Apache+ph…
·安全设置 IIS 中的权限
推荐信息
·解决w3wp.exe内存占用问题…
·阿帕奇 HTTP 服务器参考手…
·一个IP建多个Web站点--主机…
·在Wind2003中为Web站点配置…
·在Win2003下配置Apache+ph…
·如何启用iis的带宽限制
·win2000server IIS和tomca…
·Servlet/JSP配置详解(基础…
·IIS6 和Tomcat5 的整合
·win2000下jsp平台搭建的简…


Google
 
彻底掌握IIS6.0功能及应用详解(2)
〖编辑:Cloudy | 浏览:人次〗
四、通配符应用程序 

  如果你熟悉IIS 5.0和IIS 4.0的ISAPI筛选器,可能也熟悉它们的缺点。ISAPI筛选器不仅编写困难,而且由于它们在Inetinfo进程内运行,如果编写时不小心留下了一点错误,很容易导致灾难性的后果,出错的代码可能造成整个IIS崩溃。另外,ISAPI筛选器不能拥有常规ISAPI DLL拥有的功能。当然,不管怎样,在IIS 5.0和IIS 4.0中,ISAPI筛选器仍是一种非常有用的组件,是唯一可以针对所有进入Web服务器或Web网站的请求执行操作的代码。 

  IIS 6.0提供了一种更加灵活的新型机制来提供通常由ISAPI筛选器提供的服务,它就是ISAPI截取器(Interceptor),或者称为通配符应用程序(Wildcard Application)。通配符应用程序的配置方式是:在IIS管理器中右击Web网站,选择菜单“属性”,转到“主目录”页面,点击“应用程序设置”下面的“配置”按钮,出现“应用程序配置”对话框,如图四所示。在对话框的“映射”页中,我们可以将一个或多个ISAPI DLL配置成通配符应用程序。对于每一个接收到的请求,IIS 6.0将调用这里列出的各个通配符应用程序。除了针对所有网站配置通配符应用程序,还可以针对单个网站或在目录层次上配置通配符应用程序。由于这些ISAPI截取器是标准的ISAPI应用程序,它们具有普通ISAPI应用程序具备的所有功能,包括访问消息正文的能力,而不仅仅象ISAPI筛选器那样访问消息头。 
图四
通配符应用程序可以做到开发者要做的任何事情,诸如URL定制、验证身份、记录特殊的日志信息、检测攻击企图、创建内容,等等。通配符应用程序结束处理后,它把请求转交给适当的处理引擎(例如处理ASP页面的asp.dll),由处理引擎进一步处理请求。另外,通配符应用程序还可以通过调用为ISAPI应用程序新增的ExecuteURL功能 
,将请求传递到同一个应用程序池中的任意页面。 

  新增的ISAPI通配符应用程序为创造性的应用程序设计大开方便之门。例如,IIS 6.0的URL授权功能就是作为一个ISAPI通配符应用程序(urlauth.dll)实现。URL授权功能允许IIS 6.0根据一系列的规则授予对某个URL的访问权,例如用户是否为某个组的成员、地理位置,以及其他在数据库或AD中与用户有关的信息。有关ISAPI通配符应用程序和URL授权的更多信息,请参见IIS 6.0的帮助文档。 

 

  五、日志功能 

  服务器的日志功能很少成为首要的关注对象,但却是日复一日的服务器管理和监视工作不可或缺的助手。IIS 6.0在日志功能方面有许多重大的改进,但遗憾的是,W3SVC日志事件仍不能以本地时间记录。 

  在IIS 6.0中,记录日志的功能已经改为由http.sys实现,http.sys在内核模式下运行。这一改进加快了日志写入速度,同时避免了多个工作进程争用同一日志文件。某些特殊的情况下,http.sys会遇到错误,这时它应该但却不能将日志信息写入Web网站的日志,例如,工作进程正在被回收,禁止http.sys处理用户请求,或者用户试图连接到服务器,但请求中只提供了IIS所需信息的一部分。如果出现这类情况,http.sys将把事件写入一个新的日志文件httperr.log。 

  在排解故障、优化IIS 6.0的过程中,httperr.log日志文件是十分重要的。默认情况下,httperr.log文件保存在/system32/logfiles目录,但可以修改,修改方法是找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP/Parameters注册子键,在它下面添加一个名为ErrorLoggingDir的字符串值,在ErrorLoggingDir中设置保存日志文件的完整路径。在httperr.log日志文件中可以找到的信息包括:所有的503(服务不可用)错误,空闲连接超时,解析URL时出现的各种错误,最后10个提交给失败的应用程序池的请求。 

  IIS 6.0还拥有一种称为二进制日志的功能,启用这个功能后,IIS 6.0将把Web网站的所有日志信息写入一个二进制格式的日志文件,日志文件的扩展名是.ibl。要启用二进制日志功能,只要把配置文件的W3SVCC/CentralBinaryLoggingEnabled条目设置成ture(1)即可。对于ISP来说,这个功能应该非常有用。ISP的每台机器上可能有1000甚至更多的Web网站,如果每个Web网站每天生成一个日志文件,日志文件的总数很快会达到一个天文数字。微软最近发布的Log Parser 2.0工具能够读取二进制日志文件并生成报告,这个工具可以从http://download.microsoft.com/download/iis50/utility/2.0/nt5xp/en-us/setup.exe下载。Log Parser 2.0还能够读取前面介绍的httperr.log文件并生成报告。 

  从很久以前开始,IIS就允许指定本地服务器上保存日志文件的目录了。不过,虽然IIS 5.0和IIS 4.0的IIS管理器允许在指定日志文件路径的时候输入一个远程服务器的通用命名规范(UNC)的路径,但Web服务器实际上不会把日志保存到远程服务器。只有IIS 6.0才真正支持日志文件路径的UNC路径名。 

  六、网站ID 

  对于IIS服务器来说,唯一标识一个网站的不是网站的名称,而是网站的ID数值。当我们在IIS 5.0和IIS 4.0中创建一个新的网站,Web服务器将下一个可用的数字顺序号指定给网站(即,Web服务器给默认站点指定的数字是1,下一个网站是2,接下来是2、3、4,等等),这个数 
字就是网站的唯一ID。如果要访问一个网站的日志文件,首先必须知道该网站的ID,因为日志文件保存在/W3SVC/<网站的ID编号>目录。如果Web服务器上运行着一个以上的网站,仅仅依靠日志文件的路径名称根本无法判断哪一个日志目录属于哪一个网站。另外,无论是在编写管理脚本时,还是在修改配置数据文件时,网站ID都是必不可少的,例如,在IIS配置数据文件中指定ADSI(活动目录服务接口,Active Directory Service Interface)路径时往往要指定正确的网站ID。 

  尽管如此,在IIS 5.0和IIS 4.0中,从IIS管理器无法直接找到网站的ID编号。为此,IIS 6.0的管理器在网站清单中增加了一个新的“标识符”列,该列的内容就是网站的ID编号。不过,即使IIS 6.0 Web服务器上只有二三个网站,网站的ID也可能很大,例如387660891(因此该网站的日志文件路径是/W3SVC/387660891),不必奇怪,IIS 6.0不再按照顺序指定网站的ID了——它根据网站的名字计算出网站的ID。 

  如果你编写了一些脚本程序辅助管理,这些脚本要求使用原有的网站ID顺序生成方式,可以禁用IIS 6.0新式的ID生成方式,具体的操作步骤是:找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/InetMgr/Parameters注册子键,创建一个REG_DWORD值IncrementalSiteIDCreation,将它设置为2(注意,默认情况下,该键不存在)。

 

 七、异步CGI处理 

  IIS 5.0和IIS 4.0以同步方式运行CGI(Common Gateway Interface,通用网关接口)进程,这实际上意味着每次只有一个线程能够访问一个CGI进程,所以IIS 5.0和IIS 4.0对CGI支持的可伸缩性不佳。IIS 6.0能够异步运行CGI进程,所以如果一个线程调用了一个CGI应用程序,它不必再等待CGI进程处理完毕和返回信息。异步CGI改善了IIS服务器运行CGI Web应用程序的性能,使得IIS能够运行更多执行关键任务的基于CGI的应用程序。 

  当Web服务器接收到包含CGI程序名和程序所需参数的URL时,CGI程序开始执行。如果将CGI程序编译为可执行 (.exe)文件,则必须提供包含程序执行权限的目录,以便用户可以运行程序。如果CGI程序以脚本形式(例如Perl脚本)编写,则既可为目录提供执行权限,也可为其提供脚本权限。另外,如果要使用脚本权限,必须将脚本解释程序标记为脚本引擎。 

  必须注意的是,默认情况下,IIS_WPG组不具备启动CGI进程的权限。如果创建了新帐户并将其添加到IIS_WPG组,还必须授予此帐户两种启动CGI进程的用户权限,即“调整进程的内存配额”和“替换进程级令牌”。 

  八、带宽限制 

  在IIS 5.0和IIS 4.0中,Web网站属性对话框的“性能”页允许启用带宽限制功能,指定允许网站占用的最大带宽。不过,这个功能不一定起作用,因为IIS 5.0和IIS 4.0不能直接操作服务器的网卡。 

  IIS 6.0则不同,第一次启用带宽限制功能时,Windows 2003自动安装QoS数据包计划程序供IIS服务器调用。QoS数据包计划程序使得服务器能够控制服务质量(即QoS),因此安装期间Windows 2003将临时地停止所有网络服务。配置好QoS数据包计划程序后,IIS才真正有了担负起控制网站带宽限制所需的驱动程序——对于ISP来说,这无疑是一个好消息。允许设置的最小带宽限制值是1024 Byte/秒。不要忘了检查一下网卡是否在Windows 2003硬件兼容清单(HCL)中,因为只有最新的网卡才支持QoS功能。 

  要配置QoS数据包计划程序,首先必须创建一个组策略控制台。点击“开始”→“运行”,输入“mmc”,然后点击“确定”。在控制台窗口中,选择菜单“文件”→“添加/删除管理单元”,点击“添加”,在“添加独立管理单元”对话框中,选择“组策略对象编辑器”,然后依次点击“添加”、“完成”、“关闭”、“确定”。现在依次扩展控制台中的“本 
地计算机策略”、“计算机配置”、“管理模板”、“网络”,显示出“QoS数据包计划程序”,如图五所示。

图五
启用带宽限制之前,请使用系统监视器检查“网络接口”对象中的总字节数/秒或当前带宽计数器。如果希望比较传入和传出流量,请检查发送的字节数/秒和接收的字节数/秒,再比较“网络接口”对象的值和网络连接的总带宽。对于“正常”的负载,服务器使用的带宽不应超过其全部可用带宽的50%。如果服务器有较大的高峰负载,请将正常负载保持在50%以下,剩下的带宽可在高峰期使用。 

  带宽限制可以是针对全局WWW服务的(即对所有网站都有效),也可以是针对单个网站的。设置全局WWW服务最大带宽不会替代已为服务器上的单个网站设定的最大带宽。单个站点根据已设置的最大值来限制带宽,而全局设置限制所有其他未限制带宽的网站。另外,全局WWW服务带宽限制设置不会影响FTP站点或FTP服务。 

  九、默认设置的变化 

  在IIS 6.0中,许多配置项目的默认值已经与IIS 5.0或IIS 4.0的不同。例如,默认的连接超时时间已经从900秒减少到120秒,另外,EnableParentPaths设置默认关闭。还有其他一些新的设置项目也会影响服务器的性能和行为,包括: 

  ⑴ 如果某种文件类型没有在MimeMap配置属性中映射,所有对该类文件的请求将被拒绝。 

  ⑵ 默认情况下,所有工作进程会在1740分钟后自动回收,回收期间会话信息可能丢失。 

  ⑶ 运行CGI应用程序的用户上下文必须是一个IIS_WPG组的成员。 

  ⑷ Windows 2003不安装Collaboration Data Objects for Windows NT Server(CDONTS)。微软建议开发者改用CDO for Windows 2000(CDOSYS)对象。 

  ⑸ ASP请求默认限制在204800字节之下,每一个域限制在100 KB之下。IIS 5.0和IIS 4.0没有这方面的限制。 

  ⑹ 默认情况下,http.sys仅接受标题小于16 KB的请求。 

  本文关于IIS 6.0的介绍就到这里结束,虽然文章很长,但还是不可能做到面面俱到,例如,还没有提及受到广泛关注的Passport验证和摘要验证方面的改进,本文的重点放在一些具有突破性意义的IIS 6.0新特性以及几种较少有人提及的功能,以此证明IIS 6.0改进的广泛性、深入性。从许多方面来看,IIS 6.0的风头甚至盖过了Windows 2003——而且许多人认为,IIS 6.0确实有资格占据舞台的中央。
(全文完)

录入时间:2007-09-26 10:32:50 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号