Windows Server 自带的互联网信息服务器 (Internet Information Server,IIS) 是架设网站服务器的常用工具, 它是一个既简单而又麻烦的东西, 新手都可以使用 IIS 架设一个像模像样的 web 站点来, 但配置, 优化 IIS 的性能, 使得网站访问性能达到最优状态却不是一件简单的事情, 这里我就介绍一下如何一步一步的优化你的 IIS 服务器.
服务器端环境, 我们以 Windows Server 2003 的 IIS6.0 为例, 客户端环境为 Mozilla Firefox 3.0, 同时安装 Yahoo 的 YSlow 扩展.
YSlow 是 Yahoo 开发者团队发布的一款基于 Firebug 的插件. 用于分析网页, 并根据一些高性能网站的规则进行相应的评级打分, 对于网页性能优化有很好的帮助 作用, 告诉你那些部分影响了你的网页速度, 并告诉你如何基于某些规则而进行优化. 我们对于 IIS 的优化策略就是基于 YSlow 的.
使用安装了 YSlow 的 Firefox 打开目标网站, 然后点击 YSlow 图标, 点击 Performance.
其中 Performance Grade 为 YSlow 对你网站的评级, A(100 分)为最高, F 为最低, 后面列出如何进行修改, 下面我以 IIS 6.0 为例介绍一下如何进行优化网站性能.
1, 减少 HTTP 请求数量
这主要是修改网站代码, 减少外部图片, CSS,JS 等文件数量, 手动合并多个 CSS/JavaScript 文件. IIS 那里不用设置.
2, 使用 CDN
对于小网站来说, 这个就免了吧. 当然有钱人可以试试, 可以从技术上解决用户访问网站响应速度慢的问题.
3, 启用内容过期
对于静态文件启用内容过期可以提高访问性能. 首先网站的目录要划分合理, 图片, CSS,JavaScript 均放在单独目录下, 然后在 IIS 中选择目 录, 点属性 - HTTP 头, 启用内容过期, 可以选择 30 天后过去, 这样, 用户浏览器将比较当前日期和截止日期, 以便决定是显示缓存页还是从服务器请求更新的 页, 由于图片, CSS,JS 通常变化较少, 因此基本上都从本地缓存读取, 从而加快显示速度.
4, 启用 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 等已经被压缩的文件.
5, 将样式文件放在头部
这是基本的 HTML 代码风格, 将所有的 CSS 文件都放在 HTML 页面的头部.
6, 将脚本文件放在尾部
这也是基本的 HTML 代码风格, 将所有的 JavaScript 文件都放在 HTML 页面的尾部.
7, 避免 CSS 表达式
这点很简单, 因为大多数人从来不用 CSS 表达式.
8, 使用外部的 JavaScript 和 CSS
将所有的 JavaScript 和 CSS 都做成外部文件的形式进行引用, 这主要是为了让这些文件可以被浏览器缓存起来, 参见第三点的介绍.
9, 减少 DNS 查询
域名的 DNS 查询会带来额外的访问开销, 减少页面内文件的主机域名数量, 一个页面的主机域名保持在 2-4 个以内, 这样就不会降低页面的装入速度.
10, 压缩 JavaScript 文件
压缩脚本文件, 删除不必要的字符, 可以改善加载时间, 目前有很多 JavaScript 文件的压缩工具, 我这里有一个 GUI 界面的 JS 压缩工具供下载.
11, 避免重定向
网页的重定向会带来额外的运行开销, 因此要避免页面进行重定向跳转操作.
12, 删除重复脚本
一个页面两次包含同一个 JavaScript 文件会影响加载的性能, 因此需要将重复的脚本文件删除.
13, 配置 ETag
这是一个令人迷惑的问题. 理论上说将服务器的 ETag 删除会提高 HTTP 请求的性能, 但是按照微软官方提供的修改方法配置 IIS 6.0, 并没有实际效果, 最终我使用了一个 remetag, 以 ISAPI 的方式实现了删除 ETag 的功能.
经过上面这些网站前端重构和 Web 服务器的配置修改, 我们的页面结构就变得更加规范, 重构的页面大多都会取得不错的 YSlow 的评分, 总体来说性能提升了不少. 对于最终用户来说, 也会明显感受到访问网站速度变快了很多, 网站的浏览体验得到了较好的提升.
来源: https://www.cnblogs.com/lazb/p/11273942.html