微软互联网信息服务(IIS)最佳实践 (微软技术开发者丛书)
上QQ阅读APP看书,第一时间看更新

1.2 初识IIS

本节将带读者了解IIS的安装目录、关键文件夹以及重要的服务。

1.2.1 IIS应用程序文件夹

IIS服务是通过Windows服务器版操作系统上的服务器管理器添加Web角色的方式安装的。IIS服务在操作系统上安装完成后,会把程序文件都存放在%systemroot%\system32\inetsrv路径下,inetsrv即Internet Service的缩写。如果Web服务器的操作系统是64位的,那么在%systemroot%\SysWOW64\inetsrv目录下另有一份32位版本的IIS服务程序。inetsrv文件夹中的内容由以下几个部分构成。

1. IIS的配置文件和文件夹

在IIS 6.0之前版本中,配置文件是使用一个二进制格式的文件进行保存的。在IIS 6.0中,配置文件变成了Metabase.xml的XML格式的文件,保存在inetsrv文件夹根目录下。到了IIS 7.0及以后的版本,配置文件由一个Metabase.xml变成了三个XML文件:administration.config、applicationHost.config和redirection.config,一并保存在inetsrv文件夹内的config子文件夹内。config子文件夹内还有schema子文件夹,该文件夹中的内容是用来保存配置文件的XML定义的。

配置文件从二进制演化成XML格式,极大地方便了管理员对IIS配置的维护、备份和排错。

2. IIS的命令行管理工具

IIS命令行工具,早期的IIS命令行管理工具采用VBScript脚本编写,那时候IIS的管理对象都是COM的,因此使用VBScript调用非常方便,最著名的如iisapp.vbs,管理员经常使用该脚本文件查看IIS的应用程序池和w3wp.exe进程ID的对应关系。到了IIS 7.0,IIS管理工具统一变成了appcmd.exe,该命令行工具可以对网站、虚拟目录以及应用程序池进行增删核查操作,也可以通过该命令行工具给当前IIS指定配置文件。总之,管理员在IIS管理控制台上进行的常规操作,使用appcmd.exe都可以完成。在之后的IIS版本中,命令行管理工具均使用PowerShell进行了改写。

3. IIS的功能组件

在IIS 7.0以后的版本中,IIS把现有的功能都进行了组件化的重构,因此可以在inetsrv目录下看到很多.dll文件,每个文件都担负着处理IIS服务中某个特定功能的责任,例如,custerr.dll对应IIS的错误页功能,loghttp.dll对应IIS日志记录功能等。

4. IIS管理控制界面

IIS管理控制界面工具主要是IIS.msc和inetmgr.exe。IIS.msc调用的是IIS管理控制插件(Snap-in)的配置文件,启动时微软管理控制台会按照msc文件的要求加载IIS管理控制界面。inetmgr.exe则是一个可执行文件版本的管理控制台,二者功能一致,没有任何区别。

IIS在Windows操作系统上是一种比较简单的服务,没有单独的安装包,应用程序文件夹也只有inetsrv一个。

1.2.2 IIS Web内容文件夹

对于Web网站的内容,IIS规划了一个名为inetpub的文件夹来存放。一般而言,该文件夹会存放于系统盘根目录下,这个文件夹内含有若干个子文件夹,每个子文件夹都有非常重要的作用,如表1.1所示。

表1.1 inetpub子文件夹作用

除此之外,IIS的HTTP错误日志保存在%systemroot%\system32\LogFiles\HTTPERR文件夹内。

出于管理的方便和性能的考虑,一般不会把log文件夹和wwwroot文件夹直接拿来使用,而是在别的磁盘分区存放IIS日志和Web站点的内容。

1.2.3 IIS相关的Windows服务

IIS安装后还会启动以下一些Windows服务用来保障Web站点的运行,每个IIS版本的Windows服务略有不同,以下是这些服务的简要介绍,如表1.2所示。

表1.2 IIS的关键服务程序列表