通过对IIS进行优化为Web服务器减负
1、禁止多余的Web服务扩展
IIS6.0支持多种服务扩展,有些管理员偷懒或者不求甚解,担心Web运行中出现解析错误,索性在建站时开启了所有的Web服务扩展。殊不知,这其中的有些扩展比如“所有未知CGI扩展”、“在服务器端的包含文件”等是Web运行中根本用不到的,况且还占用IIS资源影响性能拖垮Web,甚至某些扩展存在漏洞容易被攻击者利用。因此,科学的原则是,用到什么扩展就启用什么扩展。
如果企业站点是静态页面,那什么扩展都不要开启。不过现在的企业站点都是交互的动态页面比如asp、php、jsp等。如果是asp页面,那只需开启“Active Server Pages”即可。对于php、jsp等动态页面IIS6.0默认是不支持的需要进行安装相应组件实现对这些扩展的支持。不过,此时用不到的扩展完全可以禁用。
禁止Web服务扩展的操作非常简单,打开“IIS管理器”,在左窗格中点击“Web服务扩展”,在右侧选择相应的扩展,然后点击“禁用”即可。(图1)
2、删除不必要的IIS扩展名映射
IIS默认支持.asp、.cdx等8种扩展名的映射,这其中除了.asp之外其他的扩展几乎用不到。这些用不着的扩展会加重web服务器的负担,而且带来一定的安全隐患。比如.asa,.cer等扩展名,就可以被攻击者利用来获得webshell。因为一般的asp系统都会限制asp文件的上传,但如果没有限制.asa或者.cer等扩展名,攻击者就可以更改文件后缀突破上传限制,运行.asa或者.cer的文件获得webshell。(图2)
删除IIS扩展名的操作是:打开IIS管理器,右键单击“默认Web站点”选择“属性”,点击“主目录”选项卡,然后点击“配置”打开应用程序窗口,最后根据自己的需要选择不必要的应用程序映射比如.shtml, .shtm, .stm等,然后点击“删除”即可。(图3)
3、取消访问记录(日志)
IIS6.0默认开启对于web的访问记录。当开启记录功能后,IIS会事无巨细地忠实记录所有的web访问记录。这些记录文件的内容是非常庞杂的,比如访问时间、客户端IP、从哪个链接访问、 Cookies等,另外还包括 Method(方法), UserAgent(用户代理)等。这些记录不但占用大量的磁盘空间还大大地影响了web服务器的性能。有人做过评测,停止访问记录可以提升5%到8%的web性能。而且这些记录对于一般用户,特别是中小型的Web站点没有什么用途,简直太耗费系统性能了,因此建议关闭它。
取消访问记录的操作是:打开IIS管理器,定位到具体的web站点,右键点击选择“属性”,在“主目录”选项卡下取消对“记录访问”的勾选即可。(图4)
4、对访问流量进行限制
默认情况下IIS 6.0对于访问量是没有限制的,如果并发连接过大超过了Web的负载轻则发生网络拥塞,重则导致服务器宕机。因此需要对用户的访问进行限制,控制Web访问的流量。
打开“Internet信息服务”管理器,在其窗口右侧点击主机名前面的“+”号,依次定位到某个Web站点上。选中该Web站点右键单击选择“属性”,在打开的属性设置窗口中选中“性能”标签,将“启用带宽限制”复选框选中,在随后被激活的“最大网络使用”设置框中,指定你的网络站点带宽的具体数值。大家可以根据服务器的性能及其访问量综合考虑继续设置。对于一般的企业站点将带宽流量设置为1500kb/s就差不多了。同时在“网站连接”下可以进行连接限制的设置,大家可以根据情况设置一个数值。完成以上设置后,IIS就只能使用其被授予的资源进行Web服务,杜绝了异常情况造成的服务器过载,为Web减负。(图5)
5、让Web负载自由伸缩
默认情况下IIS是全负荷地为Web提供服务的,这在一定程度上加重了Web负担。如何能够自动地根据负载变化自动调节工作进程呢?
利用IIS 6.0的Web园,我们只需指定用于某个应用程序池的工作进程的数量就可以了实现各个Web站点之间的隔离。具体的配置步骤是:在“Internet信息服务”管理器中打开应用程序池的“属性”对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量;如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。另外,还可以“启用CUP监视”,设置“最大CPU使用率”,“刷新CUP使用率值”以及“CPU使用率超过最大使用率是执行的操作”,这些设置可以根据需要进行设置。当一切设置完成后这一切就交给IIS自动进行,不需要管理员干预。 (图6)
- 最新评论