原文网址:http://www.phontol.com/20090507_419416_1.html Windows Server自带的互联网信息服务器(Internet Information Server,IIS)是架设网站服务器的经常使用工具,它是一个既简单而又麻烦的东西,新手均可以使用IIS架设一个像模像样的Web站点来,但配置、优化IIS的性能,使得网站访问性能达到最优状态却不是一件简单的事情,这里我就介绍一下如何一步一步的优化你的IIS服务器。css
服务器端环境,咱们以Windows Server 2003的IIS6.0为例,客户端环境为Mozilla Firefox 3.0,同时安装Yahoo的YSlow扩展。html
YSlow是Yahoo开发者团队发布的一款基于Firebug的插件。用于分析网页,并根据一些高性能网站的规则进行相应的评级打分,对于网页性能优化有很好的帮助做用,告诉你那些部分影响了你的网页速度,并告诉你如何基于某些规则而进行优化。咱们对于IIS的优化策略就是基于YSlow的。前端
使用安装了YSlow的Firefox打开目标网站,而后点击YSlow图标,点击Performance,以下图所示。web
其中Performance Grade为YSlow对你网站的评级,A(100分)为最高,F为最低,后面列出如何进行修改,下面我以IIS 6.0为例介绍一下如何进行优化网站性能。算法
一、减小HTTP请求数量浏览器
这主要是修改网站代码,减小外部图片、CSS、JS等文件数量,手动合并多个CSS/JavaScript文件。IIS那里不用设置。缓存
二、使用CDN性能优化
对于小网站来讲,这个就免了吧。固然有钱人能够试试,能够从技术上解决用户访问网站响应速度慢的问题。服务器
三、启用内容过时网络
对于静态文件启用内容过时能够提升访问性能。首先网站的目录要划分合理,图片、CSS、JavaScript均放在单独目录下,而后在IIS中选择目录,点属性-HTTP头,启用内容过时,能够选择30天后过去,这样,用户浏览器将比较当前日期和截止日期,以便决定是显示缓存页仍是从服务器请求更新的页,因为图片、CSS、JS一般变化较少,所以基本上都从本地缓存读取,从而加快显示速度。
四、启用Gzip压缩
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如Gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是下降了网络传输的数据量,从而提升客户端浏览器的访问速度。
使用方法是,右击“网站”->“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩静态文件”,“临时目录”建议单独设置另外一个盘的目录下。
以后,IIS管理器中,右击“Web服务扩展”->“增长一个新的Web服务扩展”,在“扩展名”中输入“HTTPCompression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不一样,选中“设置扩展状态为容许”。
最后,使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml,在HcFileExtensions中增长须要压缩的静态文件后缀名,默认为HTML和TXT文件,建议再添加上js、css等,不要添加图片或ZIP等已经被压缩的文件。
五、将样式文件放在头部
这是基本的HTML代码风格,将全部的CSS文件都放在HTML页面的头部。
六、将脚本文件放在尾部
这也是基本的HTML代码风格,将全部的JavaScript文件都放在HTML页面的尾部。
七、避免CSS表达式
这点很简单,由于大多数人历来不用CSS表达式。
八、使用外部的JavaScript和CSS
将全部的JavaScript和CSS都作成外部文件的形式进行引用,这主要是为了让这些文件能够被浏览器缓存起来,参见第三点的介绍。
九、减小DNS查询
域名的DNS查询会带来额外的访问开销,减小页面内文件的主机域名数量,一个页面的主机域名保持在2-4个之内,这样就不会下降页面的装入速度。 十、压缩JavaScript文件
压缩脚本文件,删除没必要要的字符,能够改善加载时间,目前有不少JavaScript文件的压缩工具,我这里有一个GUI界面的JS压缩工具供下载。
十一、避免重定向
网页的重定向会带来额外的运行开销,所以要避免页面进行重定向跳转操做。
十二、删除重复脚本
一个页面两次包含同一个JavaScript文件会影响加载的性能,所以须要将重复的脚本文件删除。
1三、配置ETag
这是一个使人迷惑的问题。理论上说将服务器的ETag删除会提升HTTP请求的性能,可是按照微软官方提供的修改方法配置IIS 6.0,并无实际效果,最终我使用了一个第三方的DLL文件,以ISAPI的方式实现了删除ETag的功能。 通过上面这些网站前端重构和WEB服务器的配置修改,咱们的页面结构就变得更加规范,重构的页面大多都会取得不错的YSlow的评分,整体来讲性能提高了很多。对于最终用户来讲,也会明显感觉到访问网站速度变快了不少,网站的浏览体验获得了较好的提高。