IIS服务器中的一些名称、术语、概念解释
1、网站
网站是iis6中管理的最基本单位,是一个网站的根对象。
主机头设置、日志设置、带宽连接数限制只有在网站级别才可以做,在其他元素下无法做。
2、应用程序
网站中的动态脚本(asp/php/asp.net等)内容需要在应用程序池中才可以运行。
每个网站在创建时都有一个默认应用程序,通常网站中的内容都在该应用程序中运行。如果有特殊需要,例如当某个子目录/虚拟目录中的内容特别重要时,或者是同一个网站中放了多个子站时,也可以在子目录或者虚拟目录中创建应用程序,避免在同一个应用程序中相互影响。
拥有应用程序的目录或虚拟目录在iis中会以一个齿轮的图标显示。
应用程序创建/删除设置方法:网站属性的"主目录"标签下,或者是子目录/虚拟目录属性的"目录"标签下,点击"应用程序池名"旁边的创建或删除按钮。
当子目录/虚拟目录中的程序没有被单独设置过程序池时,修改网站的默认程序所在程序池,则子目录/虚拟目录中的程序池也会跟着改变,如果子目录/虚拟目录单独修改过所在程序池,则之后不再跟随默认应用程序的程序池变动。
3、虚拟目录
如果一个网站除了需要使用主目录中的文件,还需要使用到其他目录下的文件,可以使用虚拟目录。创建一个虚拟目录,指向某个文件夹,则访问该虚拟目录名称即可访问到对应文件夹中的内容。
每个网站都有一个根虚拟目录,在"网站--属性--主目录"中进行的设置,都是在对该虚拟目录进行设置。
当创建虚拟目录时,"权限"设置处只勾选"只读"而未勾选"运行脚本",则会创建一个不带应用程序的虚拟目录,图标为文件夹加地球;如果勾选了"运行脚本",会创建一个带应用程序的虚拟目录,图标为齿轮。
4、目录和文件
站点中的文件夹和文件,默认跟随根虚拟目录的设置。
如果有特殊需要,也可以单独给文件夹和文件设置默认首页、身份认证、自定义错误、asp.net版本等。
5、绑定
iis6中通过不同的绑定对网站加以区分,使得同一服务器上能够同时运行多个网站。
绑定的格式为“ip地址:端口:域名”,只要其中一处不同。则视为不同的绑定。iis中的各网站绑定必须各不相同,如果某两个网站具有相同的绑定,则其中一个网站会停止。
如果ip地址留空(默认未分配),表示无论以服务器绑定的任何ip作为目的地址发起的请求,该网站都接收。如果域名留空(即空主机头),表示以某个域名发起的请求,在服务器上没有任何网站绑定该域名,则由该网站接收此请求。
6、isapi
isapi全称为服务器应用程序编程接口(internet server application programming interface)。
isapi可以是动态链接库文件(dll),也可以是可执行文件(exe),一般为dll形式。用户通过编写isapi来达到控制和扩展iis行为,实现自己需求的功能。
isapi有筛选器和应用程序扩展两种形式:
a.筛选器: 可以对iis请求或者某些事件进行捕获并进行处理,例如rewrite筛选器可以对请求url进行重定向达到伪静态效果,一些iis防火墙筛选器可以修改返回内容达到关键字过滤等效果。
b.应用程序扩展: 只对特定类型(后缀)文件的请求进行处理,例如在iis中设置了处理.php文件的应用程序扩展,使iis支持php,当接收到.php文件的请求时,iis根据应用程序扩展设置,调用php的isapi对应dll文件来处理php请求。添加的应用程序扩展必须首先在iis的web服务扩展设置里先允许才可以正常使用。
7、cgi
cgi全称为通用网关接口(common gateway interface)。
它与isapi应用程序扩展的用法类似,只不过文件格式为.exe文件。
8、web服务扩展
该功能用于确保iis的安全。默认安装的iis在web服务扩展处全部都为禁用,只允许访问静态页面,如果需要用到某个功能,需要首先在“web服务扩展”中开启对应功能。如果在网站中添加了新的后缀对应的应用程序扩展(例如.php),也需要在“web服务扩展”处添加该扩展并设置成允许后才可以使用。
主要的应用程序扩展如下:
所有未知cgi扩展: 如果开启该项功能,则网站添加任何的cgi扩展(指向.exe文件的应用程序扩展)都被允许执行。一般不开。
所有未知isapi扩展: 如果开启该项功能,则网站添加任何的isapi扩展(指向.dll文件的应用程序扩展)都被允许执行。一般不开。
asp.net v....: 处理asp.net(以.aspx结尾)需要。
active server pages: 处理asp程序(以.asp结尾)需要。
在服务器端的包含文件: 处理嵌入式服务器方包含命令的html文本(以.shtml结尾)需要。
9、日志
常见的iis日志格式有“ncsa公用文件格式”和“w3c扩展日志文件格式”两种。
ncsa公用文件格式:通用的日志格式,apache等web服务软件也使用此格式。
w3c扩展日志文件格式: iis默认的日志格式,可以记录访问客户端类型等更多信息,并且可以指定要记录的字段。
10、身份认证
身份认证用于设置以何种用户访问网站和执行脚本。
以较低权限的用户运行网站脚本,可访问的对象较少,相对较安全,但功能也可能受限制。反之,以较高权限运行网站脚本,功能受限的情况较少,但安全隐患也较大。
如果同时设置了多种认证方式,则最先以匿名身份认证方式进行验证,当匿名身份认证因用户密码错误等原因失败时,再启用其他方式验证,都不通过时则网站会提示因未授权而无法访问。
常用的身份认证方式如下:
(1)匿名身份认证:最常用的身份认证方式,当网站需要被公众访问时基本都使用该方式,预先在"网站属性--目录安全性--身份认证和访问控制--匿名访问"处设置需要运行的用户名和密码,当用户访问网站时,网站自动以该账户尝试运行网站。
(2)集成windows身份认证:使用该方式时,用户在访问网站时首先会弹出对话框,输入iis所在服务器系统中的有效用户名密码后才可访问网站,并以该账户权限执行网站脚本。当网站只允许指定用户访问时可采用此认证方式,但通常的做法是仍然使用匿名身份认证,在网站程序的层面对用户访问进行控制。
(3)基本身份验证:与集成windows身份认证方式类似,只不过集成windows身份认证的方式会以微软ntlm方式对用户名密码进行加密,而基本身份验证方式以明文发送用户名密码。