Gzip 压缩简介 

Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。 

Gzip压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右。 

上图可见, html、css、js 压缩效果还是很明显的,但 gif、png 没有压缩,因为图片已经是压缩过的,没必要再压缩

查看米扑博客原文:Apache 启用 GZIP 压缩网页传输方法

 

工具/原料 

wordpress gzip插件 

 

方法/步骤 

第一种:修改首页文件实现GZIP(推荐新手使用) 

在我们wordpress程序根目录下找到文件index.php 

然后在这个文件里面中找到: 

define(’WP_USE_THEMES’, true); 

在后面加上: 

ob_start(‘ob_gzhandler’) 

这种方法最简单,不过这种方法有个弊端,就是当wordpress系统升级后有得重新设置。 

 

第二种:修改.htaccess文件实现GZIP压缩(推荐使用) 

如果服务器支持.htaccess文件,那么在wordpress根目录的.htaccess中添加以下代码然后上传到wordpress根目录即可,实现gzip压缩代码共有两种,详细代码如下如下,添加好之后上传到wordpress根目录来测试:(张力自己使用的这种) 

<IfModule mod_expires.c> 

ExpiresActive On 

ExpiresByType image/gif A2592000 

ExpiresByType image/jpeg A2592000 

ExpiresByType image/png A2592000 

ExpiresByType image/x-icon A2592000 

ExpiresByType application/x-javascript A604800 

ExpiresByType text/css A604800 

</IfModule> 

<IfModule mod_deflate.c> 

SetOutputFilter DEFLATE 

AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript 

</IfModule> 

第三种:通过php.ini 启用Gzip(不推荐使用太复杂) 

如果服务器支持php.ini重定义的话,可以在php.ini中增加以下代码来开启gzip。 

zlib.output_compression_level = number( number为1—9的值,1的压缩比率最低, 建议取 5) 

第四种:安装wordpress gzip插件(推荐使用) 

插件名称:gzippy 

下载地址:http://xiazai.jb51.net/201211/yuanma/gzippy_jb51.rar 

这种方法是最为简单的,但是对于wordpress程序大家都知道,但使用过多插件时会导致网站打开过慢,所以建议使用第二种方法。 

注意事项 

需要注意的是如果在.htaccess文件中禁止了gzip功能的话,那在php.ini文件中开启后也需在.htaccess文件中开启 gzip,否则没有效果。开启wordpress的gzip功能后,服务器将在页面传输前将页面压缩后传送,可以有效减少服务器的带宽使用,也可以加速页 面下载。另外请注意只能选择一种方式来开启wordpress gzip压缩,否则有可能造成冲突,请大家谨记。

网页Gzip压缩检测工具

网站Gzip压缩可以减小服务器带宽占用,提高用户打开网页速度,最多可以提升网站80%的性能,是每个网站必须开启的功能, 站长工具网页Gzip压缩检测工具方便站长朋友们检测特定网页是否进行了Gzip压缩或网站是否开启Gzip压缩功能, 本工具同时也可以检测到Gzip压缩前网页大小及Gzip压缩后用户访问的实际大小,并显示出Gzip压缩比率及针对专业用户响应头信息!

Gzip压缩使用注意

CompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。 CompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡 已经是压缩过的图片格式如jpg,音乐档案如mp3、压缩文件如zip之类的,就没必要再压缩了

 

启用apache2的gzip功能推荐

apache2官方在开发的时候,就已经把网页压缩考虑进去,内建了mod_deflate模块,所以apache2就不需要使用到mod_gzip了,这两者的工作原理是类似的, 还有启用mod_deflate这个网页压缩的模块,功能和效率和mod_gzip是差不多的,甚至还好一些,就不需要再用mod_gzip模块了。

配置文件实例

<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
</ifmodule>

 

nginx 配置 gzip压缩(推荐

默认情况下,Nginx的gzip压缩是关闭的,也只对只对text/html进行压缩,需要在编辑nginx.conf文件,在http段加入一下配置,常用配置片段如下:

gzip             on;
gzip_comp_level  6;                        # 压缩比例,比例越大,压缩时间越长。默认是1
gzip_types       text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml; # 哪些文件可以被压缩
gzip_disable     "MSIE [1-6]\.";           # 无视IE6这个笨蛋~

 

lighttpd配置gzip

配置gzip主要是使用compress模块

1. 激活compress模块,将lightppd.conf文件的mod_compress的注释去掉

2. 配置压缩文件存放目录compress.cache-dir,注意运行lighttpd的用户需要有这个目录的读写权限,压缩文件的类型compress.filetype

3. 将动态生成的php也gzip,修改php.ini,加上zlib.output_compression = On和zlib.output_handler = On

4. 重启lighttpd

配置文件例子

compress.cache-dir  =  "/home/flymouse/lighttpd/compress/"
compress.filetype  =  ("text/plain", "text/html", "application/x-javascript", "text/css", "application/javascript", "text/javascript")

 

IIS 如何启用 GZip 压缩

微软 IIS 上如何启用 Gzip 压缩机制? 通过命令行执行如下命令启用对动态/静态内容的压缩输出:

appcmd set config /section:urlCompression /doDynamicCompression:True
appcmd set config /section:urlCompression /doStaticCompression:True

新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展 IIS 6.0 上压缩额外的文件扩展名 修改 c:\windows\system32\inetsrv\MetaBase.xml 文件中 HcFileExtensions 添加额外的文件扩展名。

 

IIS 7.0 上压缩额外的文件扩展名 

修改 ApplicationHost.config 文件,添加合适的 mimeType 并指定激活. 打开文件参考原有的行照葫芦画瓢就成。可能要设置多次才会成功,因为 mimeType 定义可能有些歧义。

 

 

参考推荐:

Apache 启用 GZIP 压缩网页传输方法

WordPress开启gzip压缩的方法