源站gzip帮助说明
gzip压缩分为两种,http1.0压缩和http1.1gzip是什么文件夹压缩,这两种压缩的压缩方法和response header都一样,只是客户端和服务器通讯的http协议不同。
下面为四种类型的设置步骤:
一、IIS 6.0中配置HTTP Gzip压缩的步骤:
1. 首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限,然后在我的电脑-管理-服务和应用程序,打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件""压缩静态文件",按需要设置"临时目录""临时目录的最大限制" 
 
2. Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTPCompression"或者gzip,添加"要求的文件"
C:\WINDOWS\system32\inetsrv\gzip.dll,其中 Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许" 
3. 使用文本编辑器打开C:\Windows\System32\l(建议先备份),Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要压缩动态文件,则将 HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;如果需要压缩静态文件,则将HcDoStaticCompressionHcDoOnDemandCompression设置为 "TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xmlcss等; HcDynamicCompressionLevelHcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低; 
4. 由于iis默认支持http1.1不支持http1.0,也不允许代理访问压缩,需我们将下面的两项设置为允许由TRUE修改为FALSE
HcNoCompressionForHttp10 Http1.0禁用压缩 
HcNoCompressionForProxies 对代理禁用禁用压缩 
5. 编辑完毕后保存l文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;
6. 保存完毕后需要将相关文件进行添加vary头信息,然后重启网站,就可以实现通过代理压缩的功能
二、IIS 7.0中配置HTTP Gzip压缩
1.IIS7默认情况下就是启用GZip压缩的。如果没有,则可以再功能视图下到压缩项,
进入之后就会看到静态内容压缩动态内容压缩两个选项,勾上即可。
当开启GZip压缩之后,IIS并不是对所有内容都启用了压缩,而是有选择的进行压缩。遗憾的是,我们无法直接在IIS7管理器中配置这些压缩选项。我们首先需要在C:\Windows\System32\inetsrv\config文件夹下到fig文件,打开之后到如下一节内容:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>
注意事项:1。图片默认情况下是不被压缩的,这是因为图片的压缩比太低了。
2Javascript有三种常见的Mime类型,text/javascriptapplication/x-javascriptapplication/javascript。这三种类型都是合法的,在现代浏览器中也不存在什么差别。但是由于IIS7Js文件的mime类型默认被设置为application/x-javascript,也就是说对于js文件,使用的是动态内容压缩而不是静态内容压缩,因此会导致js文件有时经过压缩的,有时却没有压缩。因此建议改成静态压缩——即把dynamicTypes这一节中的application/x-javascript挪到静态压缩节中。这样保证每次脚本都是被压缩过返回的。
3. 完毕后需要将相关文件进行添加vary头信息,然后重启网站,就可以实现通过代理压缩
的功能
三、nginx中配置HTTP Gzip压缩
Nginx默认不支持http1.0协议通信压缩,支持http1.1,这样需要我们修改一下配置文件,具体操作步骤如下:
1. 打开f配置文件到gzip on刚配置好的nginx服务此选项是被注释掉的,将其打开后,默认支持http1.1,不支持http1.0
2. 怎样设置能使得http1.0支持gzip压缩,需要手动添加配置如下:
gzip  on;  #打开gzip压缩
  gzip_http_version 1.0;    #允许http1.0协议压缩
  gzip_min_length  1000;  #压缩的最小字节(可以不设置)
  gzip_buffers  4 8k; 
  gzip_types  text/plain application/x-javascript text/css text/html application/xml; #压缩类型
  gzip_vary  on;  #开启vary头
设置完毕后保存,将其nginx服务重启一下,测试就可以了。
四、apache中配置HTTP Gzip压缩
Apache 默认就支持http1.0协议通信压缩,不需要特定配置,但是要制定那些文件类型压缩需要修改配置文件,具体如下:
我这边以apache2.2.3版本为例:
1. 首先查mod_deflate.c
将安装包解压后进入/usr/local/src/httpd-2.2.3/modules/filters目录下
2. 然后安装mod_deflate模块
/usr/local/apache/bin/apxs  -i -c -a mod_deflate.c
3. 配置mod_deflate
编辑/usr/local/apache/fLoadModule deflate_module    modules/mod_deflate.so将其模块打开
4. 设置制定文件类型,然后保存重启服务
5. 完毕后需要将相关文件进行添加vary头信息,然后重启网站,就可以实现通过代理压缩的功能.