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)
6、配置应用呈现池
IIS可以支持多个Web服务,特别是虚拟主机一台服务器上有非常多的Web站点。如何才能做到各个站点之间相互独立,不因某些Web站点出现故障而影响其他站点呢?为不同工作进程指定应用程序池是个很好的解决办法。
(1)、创建
打开“IIS 管理器”中,展开本地计算机,右键单击“应用程序池”,选择“新建→应用程序池”。在“应用程序池名称”框中,输入新的应用程序池名称。如果点选选“将现有应用程序池作为模板”,可以在“应用程序池名称”下来列表中选择相应的应用程序池,最后单击“确定”即可。 (图7)
(2)、指派
在“IIS 管理器中”,右键单击你要为其指派应用程序池的站点然后单击“属性”。在该站点的属性面板中“主目录”选项卡,在“应用程序池”下拉列表中选择刚才创建的应用程序池即可。如果所有的选项为灰色,单击“创建”按钮就可以输入“应用程序名”,然后在“应用程序池”列表框中,选择并指派网站的应用程序池了。(图8)
(3)、回收
利用“回收”功能,可是设置如何恢复系统资源进行IIS资源使用的灵活定制。打开“IIS 管理控制台”,单击“+”号依次“展开本地计算机→应用程序池”。选择你要回收的应用程序池右键单击选择“属性”,出现应用程序池的属性对话框,单击“回收”选项卡在其下可以设置“进程回收”、“内存回收”等,所有这些设置大家根据实际需要进行设置。(图9)
总结:通过上述IIS优化措施,Web服务器就能轻装上阵其性能将会有较大的提升。当然,要从根本上改善Web性能,仅仅进行软设置是不够的。另外,还需要进行硬件改造,软硬结合才是最完美的解决方案。
关键字:服务器、web、IIS、网站、网络
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解