2007年7月22日 星期日

提高IIS网站服务器效率八法

提高IIS网站服务器效率八法
2004-07-19 来源:天极硬件频道

  以下是提高IIS 5.0网站服务器的执行效率的八种方法:

  1. 启用HTTP的持续作用可以改善15~20%的执行效率。
  2. 不启用记录可以改善5~8%的执行效率。
  3. 使用 [独立] 的处理程序会损失20%的执行效率。
  4. 增加快取记忆体的保存文档数量,可提高ActiveServer Pages之效能。
  5. 勿使用CGI程式
  6. 增加IIS 5.0电脑CPU数量。
  7. 勿启用ASP侦错功能。
  8. 静态网页采用HTTP 压缩,大约可以减少20%的传输量。

  简单介绍如下

  1、启用HTTP的持续作用

  启用HTTP的持续作用(Keep-Alive)时,IIS与浏览器的连线不会断线,可以改善执行效率,直到浏览器关闭时连线才会断线。因为维持「Keep-Alive」状态时,于每次用户端请求时都不须重新建立一个新的连接,所以将改善服务器的效率。
  此功能为HTTP 1.1预设的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持续作用功能。


  2、启用HTTP的持续作用可以改善15~20%的执行效率。

  如何启用HTTP的持续作用呢?步骤如下:
  在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [内容] 之 [主目录] 页,勾选 [HTTP的持续作用] 选项。

  3、不启用记录

  不启用记录可以改善5~8%的执行效率。
  如何设定不启用记录呢?步骤如下:
  在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [内容] 之 [主目录] 页,不勾选 [启用记录] 选项。
  设定非独立的处理程序
  使用 [独立] 的处理程序会损失20%的执行效率,此处所谓「独立」系指将 [主目录]、[虚拟目录] 页之应用程式保护选项设定为 [高(独立的)] 时。因此 [应用程式保护] 设定为 [低 (IIS处理程序)]时执行效率较高,设定画面如下:
  如何设定非「独立」的处理程序呢?步骤如下:
  在 [Internet服务管理员] 中,选取整个IIS电脑、Web站台、或应用程式的起始目录。於 [内容] 之 [主目录]、[虚拟目录]页,设定应用程式保护选项为 [低 (IIS处理程序)]。

  4、调整快取(Cache)记忆体

  IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中;IIS 4.0则将静态的网页资料暂存於档案当中。调整快取(Cache)记忆体的保存档案数量可以改善执行效率。
  ASP指令文档执行过後,会在暂存於快取(Cache)记忆体中以提高执行效能。增加快取记忆体的保存文档数量,可提高Active Server Pages之效能。
  可以设定所有在整个IIS电脑、「独立」Web站台、或「独立」应用程式上执行之应用程式的快取记忆体档案数量。
  如何设定快取(Cache)功能呢?步骤如下:
  在 [Internet服务管理员] 中,选取整个IIS电脑、「独立」Web站台、或「独立」应用程式的起始目录。於 [内容] 之 [主目录]、[虚拟目录] 页,按下 [设定] 按钮时,即可由[处理程序选项] 页设定 [指令档快取记忆体] 。
  如何设定快取(Cache)记忆体档案数量呢?步骤如下:
  在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台的起始目录。於 [内容] 之 [伺服器扩充程式] 页,按下 [设定] 按钮。
  即可设定快取(Cache)记忆体档案数量。

  5、勿使用CGI程式

  使用CGI程式时,因为处理程序(Process)须不断地产生与摧毁,造成执行效率不佳。
  一般而言,执行效率比较如下:

  静态网页(Static):100

  ISAPI:50

  ASP:10

  CGI:1

  换句话说,ASP比CGI可能快10倍,因此勿使用CGI程式可以改善IIS的执行效率。

  以弹性(Flexibility)而言:ASP > CGI > ISAPI > 静态网页(Static)。

  以安全(Security)而言:ASP(独立) = ISAPI(独立)= CGI > ASP(非独立) = ISAPI(非独立)= 静态网页(Static)。

  6、增加IIS 5.0电脑CPU数量

  根据微软的测试报告,增加IIS4.0电脑CPU数量,执行效率并不会改善多少;但是增加IIS 5.0电脑CPU数量,执行效率会几乎成正比地提供,换句话说,两颗CPU的IIS 5.0电脑执行效率几乎是一颗CPU电脑的两倍,四颗CPU的IIS 5.0电脑执行效率几乎是一颗CPU电脑的四倍。
  IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中;IIS 4.0则将静态的网页资料暂存於档案当中。调整快取(Cache)记忆体的保存档案数量可以改善执行效率。

  7、勿启用ASP侦错功能

  勿启用ASP侦错功能可以改善执行效率。
  如何勿启用ASP侦错功能呢?步骤如下:
  於 [Internet服务管理员] 中,选取Web站台、或应用程式的起始目录,按右键选择[内容],按 [主目录]、[虚拟目录] 或 [目录] 页,按下[设定] 按钮,选择 [应用程式侦错] 页,不勾选 [启用ASP伺服器端指令侦错]、[启用ASP用户端指令侦错] 选项。

  8、静态网页采用HTTP 压缩

  静态网页采用HTTP 压缩,大约可以减少20%的传输量。
  HTTP压缩功能启用或关闭,系针对整台IIS服务器来设定。
  用户端使用IE 5.0浏览器连线到已经启用HTTP压缩IIS 5.0之Web服务器,才有HTTP压缩功能。
  如何启用HTTP压缩功能呢?步骤如下:
  若要启用HTTP压缩功能,方法为在 [Internet服务管理员] 中,选取电脑之 [内容],於 [主要内容] 之下选取[WWW服务]。然後按一下 [编辑] 按钮,於 [服务] 页上,选取 [压缩静态档案] 可以压缩静态档案,不选取 [压缩应用程式档案] 。

  动态产生的内容档案(压缩应用程式档案)也可以压缩,但是须耗费额外CPU处理时间,若% Processor Time已经百分之八十或更多时,建议不要压缩。
  其次 我还要说一下,就是除掉一些不必要的服务
其次 我还要说一下,就是除掉一些不必要的服务

*Win2000+IIS 5.0安全配置规范
Windows2000+IIS 5.0安全配置规范详细讲解
  一、 Windows 2000安全配置

  ■. 确保所有磁盘分区为NTFS分区
  ■. 操作系统、Web主目录、日志分别安装在不同的分区
  ■. 不要安装不需要的协议,比如IPX/SPX, NetBIOS?
  ■. 不要安装其它任何操作系统
  ■. 安装Service Pack
  ■. 安装hotfix,一般需要安装如下补丁
  * Q260347_W2K_sp2_x86_cn(IISCrosssite)
  * Q262694_W2K_SP2_x86_CN(resetBrowseForm)
  * Q269049_W2K_SP2_x86_CN(shellpath)
  * Q269862_W2K_SP2_x86_CN(unicode)
  * Q270676_W2K_SP2_x86_CN(shurufa)
  * Q272743_W2K_SP2_x86_CN(NTLM)
  * Q277873_W2K_sp2_x86_CN(filerequest)
  * Q278499_W2K_sp2_x86_CN(indexserv)
  * Q280322_W2K_sp2_x86_CN(malwebform)
  * q285851_w2k_sp3_x86_cn(netdde)
  具体可参考微软网站:http://www.microsoft.com/Windows2000/downloads
  ■. 关闭所有不需要的服务
  * Alerter (disable)
  * ClipBook Server (disable)
  * Computer Browser (disable)
  * DHCP Client (disable)
  * Directory Replicator (disable)
  * FTP publishing service (disable)
  * License Logging Service (disable)
  * Messenger (disable)
  * Netlogon (disable)
  * Network DDE (disable)
  * Network DDE DSDM (disable)
  * Network Monitor (disable)
  * Plug and Play (disable after all hardware configuration)
  * Remote Access Server (disable)
  * Remote Procedure Call (RPC) locater (disable)
  * Schedule (disable)
  * Server (disable)
  * Simple Services (disable)
  * Spooler (disable)
  * TCP/IP Netbios Helper (disable)
  * Telephone Service (disable)

  在必要时禁止如下服务:
  * SNMP service (optional)
  * SNMP trap (optional)
  * UPS (optional
  设置如下服务为自动启动:
  * Eventlog ( required )
  * NT LM Security Provider (required)
  * RPC service (required)
  * WWW (required)
  * Workstation (leave service on:will be disabled later in the document)
  * MSDTC (required)
  * Protected Storage (required)
  ■. 删除 OS/2 和 POSIX 子系统:
  删除如下目录的任何键:
  HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\OS/2 Subsystem for NT
  删除如下的键:
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment\Os2LibPath
  删除如下的键:
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Optional
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Posix
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Os2
  删除如下目录:
  c:\winnt\system32\os2
  ■. 帐号和密码策略
  1) 保证禁止guest帐号
  2) 将administrator改名为比较难猜的帐号
  3) 密码唯一性:记录上次的 6 个密码
  4) 最短密码期限:2
  5) 密码最长期限:42
  6) 最短密码长度:8
  7) 密码复杂化(passfilt.dll):启用
  8) 用户必须登录方能更改密码:启用
  9) 帐号失败登录锁定的门限:6
  10)锁定后重新启用的时间间隔:720分钟
  ■.保护文件和目录
  将C:\winnt, C:\winnt\config, C:\winnt\system32, C:\winnt\system等目录的访问权限做限制,限制everyone的写权限,限制users组的读写权限
  ■.注册表一些条目的修改
  1) 去除logon对话框中的shutdown按钮
  将HKEY_LOCAL_MACHINE\SOFTWARE
  \Microsoft\Windows NT\Current Version\Winlogon\中
  ShutdownWithoutLogon REG_SZ 值设为0
  2) 去除logon信息的cashing功能
  将HKEY_LOCAL_MACHINE\SOFTWARE
  \Microsoft\Windows NT\Current Version\Winlogon\中
  CachedLogonsCount REG_SZ 值设为0

  3) 隐藏上次登陆的用户名
  将HKEY_LOCAL_MACHINE\SOFTWARE
  \Microsoft\Windows NT\Current Version\Winlogon\中
  DontDisplayLastUserName REG_SZ 值设为1
  4)限制LSA匿名访问
  将HKEY_LOCAL_MACHINE\SYSTEM
  \CurrentControlSet\Control\LSA中
  RestricAnonymous REG_DWORD 值设为1
  5) 去除所有网络共享
  将HKEY_LOCAL_MACHINE\SYSTEM
  \CurrentControlSet\Services\LanManServer\Parameters\中
  AutoShareServer REG_DWORD 值设为0
  ■. 启用TCP/IP过滤
  只允许TCP端口80和443(如果使用SSL)
  不允许UDP端口
  只允许IP Protocol 6 (TCP)
  ■. 移动部分重要文件并加访问控制:
  创建一个只有系统管理员能够访问的目录,将system32目录下的一些重要文件移动到此目录:
  xcopy.exe, wscript.exe, cscript.exe, net.exe, ftp.exe, telnet.exe,arp.exe,
  edlin.exe,ping.exe,route.exe,at.exe,finger.exe,posix.exe,rsh.exe,atsvc.exe,
  qbasic.exe,runonce.exe,syskey.exe,cacls.exe, ipconfig.exe, rcp.exe,
  secfixup.exe, nbtstat.exe, rdisk.exe, debug.exe, regedt32.exe, regedit.exe,
  edit.com, netstat.exe, tracert.exe, nslookup.exe, rexec.exe, cmd.exe
  ■.安装防病毒软件Norton 2000
  ■. 可以下载Hisecweb.inf安全模板来配置
  Http://download.microsoft.com/downl...US/hisecweb.exe
  该模板配置基本的 Windows 2000 系统安全策略。
  将该模板复制到 %windir%\security\templates 目录。
  打开“安全模板”工具,查看这些设置。
  打开“安全配置和分析”工具,然后装载该模板。
  右键单击“安全配置和分析”工具,然后从上下文菜单中选择“立即分析计算机”。
  等候操作完成。
  查看结果,如有必要就更新该模板。
  右键单击“安全配置和分析”工具,然后从上下文菜单中选择“立即配置计算机”。

  二、IIS的安全配置

  ■. 关闭并删除默认站点:
  默认FTP站点
  默认Web站点
  管理Web站点
  ■. 建立自己的站点,与系统不在一个分区,如
  D:\wwwroot3. 建立 E:\Logfiles 目录,以后建立站点时的日志文件均位于此目录,确保此目录上的访问控制权限是: Administrators(完全控制)System(完全控制)
  ■. 删除IIS的部分目录:
  IISHelp C:\winnt\help\iishelp
  IISAdmin C:\system32\inetsrv\iisadmin
  MSADC C:\Program Files\Common Files\System\msadc\
  删除 C:\\inetpub

  ■. 删除不必要的IIS映射和扩展:
  IIS 被预先配置为支持常用的文件名扩展如 .asp 和 .shtm 文件。IIS 接收到这些类型的文件请求时,该调用由 DLL 处理。如果您不使用其中的某些扩展或功能,则应删除该
  映射,步骤如下:
  打开 Internet 服务管理器:
  选择计算机名,点鼠标右键,选择属性:
  然后选择编辑
  然后选择主目录, 点击配置
  选择扩展名 \".htw\",\".htr\",\".idc\",\".ida\",\".idq\"和\".printer\",点击删除
  如果不使用server side include,则删除\".shtm\" \".stm\" 和 \".shtml\"
  ■. 禁用父路径 :
  “父路径”选项允许您在对诸如 MapPath 函数调用中使用“..”。在默认情况下,该选项
  处于启用状态,应该禁用它。
  禁用该选项的步骤如下:
  右键单击该 Web 站点的根,然后从上下文菜单中选择“属性”。
  单击“主目录”选项卡。
  单击“配置”。
  单击“应用程序选项”选项卡。
  取消选择“启用父路径”复选框。
  ■. 在虚拟目录上设置访问控制权限
  主页使用的文件按照文件类型应使用不同的访问控制列表:
  CGI (.exe, .dll, .cmd, .pl)
  Everyone (X)
  Administrators(完全控制)
  System(完全控制)
  脚本文件 (.asp)
  Everyone (X)
  Administrators(完全控制)
  System(完全控制)
  include 文件 (.inc, .shtm, .shtml)
  Everyone (X)
  Administrators(完全控制)
  System(完全控制)
  静态内容 (.txt, .gif, .jpg, .html)
  Everyone (R)
  Administrators(完全控制)
  System(完全控制)
  在创建Web站点时,没有必要在每个文件上设置访问控制权限,应该为每个文件类型创建一个新目录,然后在每个目录上设置访问控制权限、允许访问控制权限传给各个文件。
  例如,目录结构可为以下形式:
  D:\wwwroot\myserver\static (.html)
  D:\wwwroot\myserver\include (.inc)
  D:\wwwroot\myserver \script (.asp)
  D:\wwwroot\myserver \executable (.dll)
  D:\wwwroot\myserver\images (.gif, .jpeg)
  ■. 启用日志记录
  确定服务器是否被攻击时,日志记录是极其重要的。
  应使用 W3C 扩展日志记录格式,步骤如下:
  打开 Internet 服务管理器:
  右键单击站点,然后从上下文菜单中选择“属性”。
  单击“Web 站点”选项卡。
  选中“启用日志记录”复选框。
  从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”。
  单击“属性”。
  单击“扩展属性”选项卡,然后设置以下属性:
  * 客户 IP 地址
  * 用户名
  * 方法
  * URI 资源
  * HTTP 状态
  * Win32 状态
  * 用户代理
  * 服务器 IP 地址
  * 服务器端口

*IIS信息服务器排错指导
IIS服务器出错的原因是复杂的。本节就一般性的IIS排错提供指导性的介绍。
  IIS服务器出错的原因是复杂的。象服务启动失败、IIS进程中断或者站点不能启动这些错误都会在系统日志中记录一个错误事件。不论IIS出现何种错误,在确定排错方案之前,都应先使用事件查看器查阅系统日志所记录的相关事件。某些错误显然是由服务器硬件的损坏而造成的,而另一些由于软件原因造成的错误往往不易察觉。本节就一般性的IIS排错提供指导性的介绍。

  重新启动IIS

  按照微软产品的一般性排错方法和故障解决方案,大多数软件问题可以通过重新启动到方法得以解决。作为IIS5.0的新功能之一,我们可以在不重新启动计算机的情况下重启IIS服务,甚至相当严重的问题都可以采用这种方法解决。重新启动IIS服务可以强迫系统重置IIS进程的内存空间,故由于内存错误引起的问题可以得到解决。重启IIS的方法主要用于下列情况:网站应用程序瘫痪、且不能有效加以控制;网站应用程序工作不正常或者不稳定。[/TD] [/TR][/TABLE]重新启动IIS服务的过程中,全部当前连接都不能保留,且重启期间服务器上的全部站点都不能工作。如果重启IIS服务不能解决问题,则重启服务器亦不会有效。

  当站点应用程序不能正常工作时,按照下述步骤重新启动服务器的IIS服务:

  1.在IIS管理控制树中展开IIS节点,选择需要重新启动IIS服务的计算机。

  2.单击【操作】菜单,选择【重新启动IIS】。

  3.在【停止/启动/重新启动】对话框中的【您向要IIS做什么】下拉列表中选择【重新启动服务器的IIS】 ,单击【确定】。

  4.正在关闭】对话框显示重新启动IIS的进度,如果对话框长时间没有反应,单击【现在结束】并重新进行上述操作。

  注意:不能使用基于HTML的IIS管理器(远程管理模式)进行上述重启操作。

  对于单个站点的稳定性问题,不必重新启动整个IIS进程,只要重启站点即可。


  IIS排错

  备份/还原IIS

  如果世界上存在一个万无一失的服务器安全规划方案,那就是备份。曾经有人指出:一个优秀的系统管理员所做的最重要的三项工作就是:备份、备份、备份。

  IIS的实现机制包括一个类似注册表的元数据库:MetaBase,有关IIS本身和站点的配置属性全部保存在Windows 2000和元数据库MetaBase中。因此,只要将相关的注册表和元数据库进行备份,即可保存站点相关的全部配置。即使在删除站点甚至重新安装IIS之后,仍然能够利用备份恢复到原来的状态。


  备份IIS的步骤如下:

  1.在IIS管理器中展开IIS节点,选择向要备份的计算机。

  2.单击【操作】菜单,选择【备份/还原配置】。
  3.在【备份/还原配置】对话框中的【备份】列表中列出全部备份文件以及备份时间。单击【创建备份】按钮。

  4.在【备份配置】对话框中指定新建备份的名称,单击【确定】。

  5.单击【关闭】完成备份。

  默认情况下,备份文件将保存在 Winntsystem32inetsrvMetaBack目录中。

  恢复备份的方法与此类似,在【备份/还原配置】对话框中的【备份】列表中选择一个备份文件,单击【还原】。然后再如左图所示的提示对话框中单击【确定】,一段时间之后,IIS服务器恢复到进行备份时所处的状态。

  如果服务器重装IIS之后需要恢复备份,则在上述恢复操作的基础上,还应进行额外的操作,步骤如下:

  1.在命令提示符下,键入cscript.exe X:InetPubAmdinScriptsAdsutil.vbs enumw3svc,此处"X"是安装IIS的驱动器号。从列出的设置中,查找WamUserName和相关的WAMUserPass的值。

  2.在控制面板中双击【管理工具】,然后双击【计算机管理】。

  3.选择【本地用户管理器】,然后单击【用户】。双击【IWAM_computername】用户帐户。键入从以前步骤找到的WAMUserPass值,并单击【确定】。



  4.在【配置备份名】对话框中,选择创建的备份文件,然后单击【还原】。此时配置将得到完全还原。

  IIS排错
 
  TCP/IP排错

  TCP/IP协议问题往往是导致IIS不能正常工作的原因。当IIS出现错误但是可以判断IIS服务本身没有问题时,就要考虑是否网络连接出现问题,简单排除网络硬件损坏所造成的问题之后,我们的注意力就应集中在网络协议,主要是TCP/IP协议上。

  Windows 2000提供了一系列TCP/IP排错工具,这些主要基于命令提示行的工具提供了诊断网络问题的强大手段。

  使用ipconfig工具检查TCP/IP配置

  ipconfig是一个查阅和管理客户机TCP/IP配置状态的命令提示行工具。在命令提示行中键入:ipconfig并回车,得到如右图所示的计算机基本TCP/IP配置属性,包括IP地址、子网掩码和缺省网关。

  在命令提示行中键入:ipconfig /all并回车,得到详细模式的TCP/IP配置状态,除了基本信息之外,还包括主机名、DNS设置、WINS设置、DHCP设置以及物理地址、节点类型等TCP/IP信息。

  如果计算机启用DHCP并使用DHCP服务器获得配置,可以使用ipconfig /renew命令开始刷新租约。也可以使用带/release选项的ipconfig命令立即释放主机的当前DHCP配置。

  对于Windows 95和Windows 98客户机,应使用 winipcfg命令而不是ipconfig命令。

  使用ping命令测试连接

  Ping命令有助于验证IP级的连通性,发现和解决问题时,可以使用Ping向目标主机名或IP地址发送ICMP回应请求。在需要验证主机能否连接到TCP/IP网络和网络资源时使用Ping。

  Ping命令实际上是向目标主机发送若干(缺省为4个)数据包,如果本地计算机与目标主机之间能够连通,目标主机将回复一条响应信息,如右上图所示,响应信息包括响应时间和TTL值。成功的Ping同一台主机说明IP数据能够在本地与目标主机之间传送。

  如果收到超时信息,如右下图所示,则说明本地主机与目标主机之间的TCP/IP连接不能建立,可能的原因包括网络故障,协议错误以及TCP/IP配置错误等。


  在确认网络连通性的时候,应按照以下顺序进行Ping测试:

  1.Ping本地循环地址127.0.0.1,确定本地TCP/IP配置是否正确。

  在命令提示行键入Ping 127.0.0.1。

  2.Ping本机地址,检验本地IP地址设置是否正确。

  3.Ping缺省网关地址,检验能否与本地子网之外的主机进行通信。

  4.Ping远程子网上的主机,检验能否通过路由器进行远程通信。

  如果以上Ping命令均能够得到响应,说明TCP/IP配置能够支持网络通信。否则,针对相应的网络组件进行设置检查。

  使用netstat工具显示连接统计

  可以使用netstat命令显示协议统计信息和当前的TCP/IP连接。

  netstat -a命令将显示所有连接,而netstat -r显示路由表和活动连接。netstat -e命令将显示 Ethernet 统计信息,而netstat -s显示每个协议的统计信息。

  如果使用 netstat -n,则不能将地址和端口号转换成名称。

Windows 2003 企业版 的IIS设置好后只能访问html类型的网页,不能访问asp、php等类型的网页。在2000版中不存在这个问题。
那是因为2003中用的是IIS6,默认的只能访问html页面!
在Internet服务管理器里,选择"web服务扩展",把"ActiveServerPages"设为允许就可以了~~~~~~~~~

另外:
1)要把“默认的站点”-“工作区[虚拟目录]”-“属性”-“虚拟目录”-“配置…”-“选项”-“启用父目录”选中。
2)在WindowsServer2003下上传大文件注意事项:
在WindowsServer2003上传较大的附件进行发送时系统报错:
Request对象错误'ASP0104:80004005'
或者
007~ASP0104~不允许操作~
或者
不能创建文件上载组件Upload.UploadFile

出现上述信息,请进行如下操作:
先在服务里关闭iisadminservice服务
找到WINDOWS\system32\inetsrv\下的MetaBase.xml,
打开,找到ASPMaxRequestEntityAllowed把他修改为需要的值,默认为204800,即200K,把它修改为51200000或者更大[根据文件大小确定]。
然后重启iisadminservice服务。

沒有留言: