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的评分,总体来说性能提升了不少。对于最终用户来说,也会明显感受到访问网站速度变快了很多,网站的浏览体验得到了较好的提升。

IIS网站服务器性能优化攻略的更多相关文章

  1. IIS网站服务器性能优化指南(转载)

    原文网址:http://www.phontol.com/20090507_419416_1.html       Windows Server自带的互联网信息服务器(Internet Informat ...

  2. Oracle12c 性能优化攻略:攻略目录表

    注:本文来源于 [美] Sam Alapati ,   Darl Kuhn ,  Bill Padfield  著   朱浩波 翻译 <Oracle Database 12C 性能优化攻略> ...

  3. Oracle12c 性能优化攻略:攻略1-3: 匹配表类型与业务需求

    注:目录表 <Oracle12c 性能优化攻略:攻略目录表> 问题描述 你刚开始使用oracle数据库,并且学习了一些关于可用的各种表类型的知识.例如:可以在堆组织表.索引组织表等之间支出 ...

  4. Oracle12c 性能优化攻略:攻略1-2:创建具有最优性能的表空间

    问题描述:    1:表空间是存储数据库对象(例如索引 .表)的逻辑容器.    2:在创建数据库对象不为其指定存储属性,则相应的表和索引会自动继承表空间的存储特性.    故:若需要好的索引.表的性 ...

  5. Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库

    一:章节前言 本章着眼于影响表中数据存储性能的数据库特性. 表的性能部分取决于在创建之前所应用的数据库特性.例如:在最初创建数据库时采用的物理存储特性以及相关的表空间都会在后来影响表的性能.类似地,表 ...

  6. Apache服务器故障排除攻略

    Apache服务器故障排除攻略 应用服务器Apache浏览器配置管理网络应用  随着网络技术的普及.应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一.原有的客户端/服务器模式正 ...

  7. HTML5前端(移动端网站)性能优化指南

    HTML5是一种最新发布网页构架的普遍模型,是构建对程序.对用户都更有价值的数据驱动的Web的前端技术框架,它的价值在于融合CSS/javaScript/flash等众多前端开发技术,更多的体现在对交 ...

  8. 网站前端性能优化之javascript和css

    之前看过Yahoo团队写的一篇关于网站性能优化的文章,文章是2010年左右写的,虽然有点老,但是很多方面还是很有借鉴意义的.关于css的性能优化,他提到了如下几点: CSS性能优化 1.把样式表置于顶 ...

  9. 安全开发运维必备,如何进行Nginx代理Web服务器性能优化与安全加固配置,看这篇指南就够了

    本章目录 1.引言 1.1 目的 1.2 目标范围 1.3 读者对象 2.参考说明 2.1 帮助参考 2.2 参数说明 3.3 模块说明 3.服务优化 3.1 系统内核 3.2 编译优化 3.3 性能 ...

随机推荐

  1. 高并发 Nginx+Lua OpenResty系列(3)——模块指令

    Nginx Lua 模块指令 Nginx共11个处理阶段,而相应的处理阶段是可以做插入式处理,即可插拔式架构:另外指令可以在http.server.server if.location.locatio ...

  2. Binary classification - 聊聊评价指标的那些事儿【回忆篇】

    在解决分类问题的时候,可以选择的评价指标简直不要太多.但基本可以分成两2大类,我们今分别来说道说道 基于一个概率阈值判断在该阈值下预测的准确率 衡量模型整体表现(在各个阈值下)的评价指标 在说指标之前 ...

  3. 数据库读写分离Master-Slave

    数据库读写分离Master-Slave 一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢,这时我们需要一些有效的优化手段来提高数据库的执行速度:如SQL优化.表结构优化.索引优化.引擎 ...

  4. 【设计模式】行为型08状态模式(status Pattern)

    状态模式(status Pattern)       定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类.其别名为状态对象(Objects for States).与命令模式 ...

  5. 【数据库】Navicat Premium12远程连接MySQL数据库

    目录 00. 目录 01. 环境介绍 02. Navicat安装 03. MySQL开启远程登录权限 04. Navicat连接MySQL 00. 目录 @ 参考博客:https://blog.csd ...

  6. POJ 1741:Tree(树上点分治)

    题目链接 题意 给一棵边带权树,问两点之间的距离小于等于K的点对有多少个. 思路 <分治算法在树的路径问题中的应用> 图片转载于http://www.cnblogs.com/Paul-Gu ...

  7. HDU 5510:Bazinga(暴力KMP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5510 Bazinga Problem Description   Ladies and gentlemen, p ...

  8. ORACLE常用函数的使用方法

    ORACLE常用函数的使用方法 1. 字符串函数 (1) length(); 获取字符长度SELECT LENGTH('中国') FROM PLATFORM_METAINFO_TABLES WHERE ...

  9. Python C3 算法 手动计算顺序

    Python C3 算法 手动计算顺序   手动计算类继承C3算法原则: 以所求类的直接子类的数目分成相应部分 按照从左往右的顺序依次写出继承关系 继承关系第一个第一位,在所有后面关系都是第一个出现的 ...

  10. 基于Vue的通用框架Nuxt.js

    问题:最近有些朋友问我写官网,用Vue框架实现好不好? 相信很多使用Vue的小伙伴们一样疑惑这个问题,其实从这个问题就可以知道你对Vue这个框架是否真的熟悉了.其实单单使用Vue这个框架来做官网的,其 ...