在Windows服务器上,IIS服务组件是使用率最高的,在其支持下可以让网站顺利运作。在Internet信息服务器窗口左侧的“网站”节点下可以看到默认的站点,该站点可以停用但切勿删除,否则会造成IIS运行不稳定。对于常用的IIS 6.0来说,在默认状态下,其上传的文件体积被限制在200KB以下,为了解除这一限制,可以先在CMD窗口中执 行“net stop IISADMIN”命令,暂停IIS服务。进入“C:WindowsSystem32inetsrv”文件夹,使用记事本打开其中的“metabase.xml”文 件,将 其 中 的“ASPMax RequestEntityAllow” 的 值修改为从204800字节修改为更大的数值(例如2048000字节等)。之后运行“net start IISADMIN”命令重启IIS服务即可。
在Internet信息管理器窗口左侧的“网站”节点的右键菜单上点击“添加网站”项,在弹出窗口(如图6所示)中输入网站名称,点击浏览按钮,选择网站目录。在本例中,该目录应该选择针对每个FTP用户文件夹下的“www”目录。在“绑定”栏中选择网站类型,IP地址以及和端口号,为了便于区分不同的站点,在“主机名”栏中输入网站域名,如果此处为空,表示只能建立一个网站,当建立第二个网站时,系统就会提示端口已经被占用。
在Internet信息管理器窗口左侧左侧选择该网站,在其右键菜单中点击“编辑权限”链接,在弹出窗口中的“安全”面板中点击“编辑”按钮,在弹出窗口中可以为不同的账户设置合适的权限,例如对于Everyone账户来说,应该只为其指派读取权限,为了安全起见,没有需要的话最好不要选择写入和执行等权限。当创建好网站后,需要对其进行合理配置,选择目标网站窗口中部双击“日志”项,在日志记录属性窗口中的“目录”栏中点击“浏览”按钮,针对不同的FTP用户文件夹,选择其中的“logfiles”目录,用来存储日志文件。
在窗口中部双击“处理程序映射”项,在窗口中部可以管理映射信息,为了安全起见,最好只保留针对asp,asa,aspx等文件类型的映射关系。当然,可以手工添加新的映射项目。例如对于ASP+Access网站结构来说,点击“添加脚本映射”链接,点击浏览按钮,选择解析“.MDB”的程序,该程序可以随便选择,当然不能选择“asp.dll”文件即可。这样做的好处在于可以防止别人随意下载MDB数据库。选择“C:Windows”路劲 下 的“vmmreg32.dll”文件,在“请求路径”栏中输入“.mdb”。点击“请求设置”按钮,在“谓词”面板中的选择“下列谓词之一”项,输入“GET,HEAD,POST,TRACE”。点击确定按钮,完成该映射的创建操作。
图6 创建网站项目
图7 自定义错误信息
当IIS服务出错时,如何向客户端发送不含敏感信息的错误信息呢?例如,在窗口中部双击“ASP”项,在“调试”节点(如图7所示)中的“将错误发送到浏览器”列表中选择“True”项,在“脚本错误信息”栏中输入具体的信息内容。这样,可以有效防止黑客执行暴库操作,当网站出错后会显示预设的信息,而不会显示包含敏感信息的提示信息。否则,当黑客执行探测操作时,可能会根据网站的提示信息发现数据库的类型甚至是数据库文件路径。
在“启用父路径”栏中选择“True”项,表示启用ASP的父路径功能,避免有些网站无法运行的问题。此外,在IIS7中只能调试ASP程序,但是无法对ASP+Acess数据库结构的网站进行测试,其原因是目录权限问题,打开“c:windowsserviceprofiles etworkserviceappdatalocal”文件夹,注意其中的“Appdata”是隐藏文件夹,在其中选择“Temp”文件夹,在其右键菜单上点击“属性”项,在其属性窗口中打开“安全”面板,点击“编辑”按钮打开“编辑权限”窗口,点击“添加”按钮,在“选择用户或组”窗口中的“输入对象名称来选择”栏中输入“A”,点击确定按钮,系统即可自动列出所有带有“A”字符的账户名称,在其中选择“Athenticated Users”账户,点击确定按钮后“TEMP”目录权限就设置好了,之后就可以调试上述ASP程序了。
在窗口中部双击“错误页”项,可以显示所有的错误页处理项目,我们应根据需要对其进行删除和添加操作。当然,针对不同的错误类型,可以自己手动设计一个HTM网页文件,在其中输入所需的提示信息。在错误信息列表中双击对应的项目,点击“设置”按钮,在弹出窗口(如图8所示)中点击“浏览”按钮,选择具体的路径,在“相对文件路径”栏中输入对应的HTM提示文件名即可。为了便于Web匿名访问,在窗口中部双击“身份验证”项,选择并激活“匿名身份验证”项,点击“编辑”链接,设置与该网站目录对应的FTP账户的名称和密码。为了让网站顺利运行,可以在窗口左侧点击“应用程序池”项,在中部双击对应网站名称,在弹出窗口中选择“ASP.NET v2.0.50727” 和“经典”项即可。
图8 编辑错误页参数
为了提高安全性和稳定性,在IIS7中会自动将各个网站进行隔离,也就是为每个网站配置相应的应用程序池。对于IIS 6.0来说,就需要手工为每个网站分配一个应用程序池。如果网站数量众多,则可以采用分组的形式,每个组中的所有网站共处同一个应用程序池。首先创建应用程序池安全性账户(例如usrchi等),该账户必须隶属于IIS_WPG组。在上述FTP主目录中选择对应的网站文件夹,在其属性窗口中的“安全”面板中删除其它账户或者组,而只让该账户拥有对该文件夹的读取权限。这样,该账户就获得了各个网站文件夹的读取权限。
进入IIS管理控制台,在“应用程序池”的右键菜单上点击“添加应用程序池”项,在添加新应用程序池窗口中输入其ID标识信息,例如“xxx.cn”。在该ID名的右键菜单上点击“高级设置”项,在弹出窗口中的“标识”栏中点击浏览按钮,找到上述iischi账户,输入其账户名和密码,点击确定按钮,完成该应用程序池的创建操作。按照上述方法,可以创建多个应用程序池。接着在IIS管理器中选择目标网站,在其属性窗口中的“主目录”面板中的“应用程序池”列表中选择对应的应用程序池ID即可。
当网站运行一段时间后,主机CPU以及内存资源如果不能及时释放的话,就会导致服务器响应缓慢的问题。应用程序池默认每个29小时进行进程的回收,由于时间较长,我们需要及时回收这些资源,来更好的发挥服务器性能。例如在IIS 7中,在对应应用程序池的高级设置界面中的“回收”→“特定时间间隔”栏中点击选择按钮,来设置对应的回收时间。对IIS 6来说,在应用程序池属性窗口中选择“在下列时间回收工作进程”项,点击“添加”按钮,设置合适的时间点,对系统资源执行回收操作,建议最好在夜间(例如凌晨2点)进行回收,这主要是夜间网站访问量较少,对资源的回收不会影响网站的访问速度。