在 Linux 环境下利用 apache gzip 压缩 模块,使用 gzip 压缩算法来对 apache 服务器发布的网页内容进行压缩后,再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度,apache gzip 压缩 在消耗一点点 CPU 使用率的情况下,可以大幅减少网页在传输过程中的带宽(大约 60%-75%)。

采用 apache gzip 压缩 加快了网页加载速度,主要有两个优点:

1、节省流量,改善用户的浏览体验外;

2、另一个潜在的好处是 gzip 与搜索引擎的抓取工具有着更好的关系,有利 SEO。

如何查看网页是否使用了 apache gzip 压缩呢?方法很多,可以在客户端 chrome 浏览器打开调试工具,查看网页的请求头和响应头,最简单的方法,可以打开站长之家的 SEO 工具,一键查询。

正确区分 apache gzip 压缩 的两个模块: mod_deflate 和 mod_gzip

所谓 gzip,其实在早期的 apache 1.x 系列版本中没有内建网页压缩技术,所以才需要去 gzip 压缩,apache2.x 官方在开发的时候,就已经把网页压缩考虑进去,内建了 mod_deflate 模块,所以 apache2 以上就不需要使用到 mod_gzip 了,这两者的工作原理是类似的,还有启用 mod_deflate 这个网页压缩的模块,功能和效率和 mod_gzip 是差不多的,甚至还好一些,就不需要再用 mod_gzip 模块了。

apache 下开启 gzip 压缩的方法

源码编译安装 APACHE2.2.XX 时要加上 –enable-deflate=shared。在 http.conf 里会找到如下行; 如果没有请加上

LoadModule deflate_module modules/mod_deflate.so

如果是 YUM RPM(老衲的 apache 安装方法)安装的话就自动开启了,压缩比例: 约能压缩下 70%的体积。

mod_deflate 模块加载完成后,老衲是从度娘问的 apache zip 压缩方法。看到这,以为网页就已经开启了压缩。重启 apache 之后,打开老衲前端的博客,查看调试,结果没有使用 gzip 压缩。度娘里很多都说加载 mod_deflate 模块就可以了,可老衲的 server/db 没有一点网页压缩作用。最后,老衲在 http.conf 加上了下面一配置:


DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css

上面的 apache gzip 压缩 配置可以压缩一般网页中会用到的 html、xml、php、css、js 等格式档案输出,虽然会占用掉服务器处理器的一点点处理器时间,浏览者在接收网页数据时也会消耗极短暂的一点点处理器时间,不过却可以大幅减少数据传输量,减少网络带宽被吃掉的情形。

下面是摘抄度娘的配置参数解释:

DeflateCompressionLevel 9 是指压缩程度的等级,从 1 到 9,9 是最高等级。这样做最高可以减少 8 成大小的传输量(看档案内容而定),最少也能够节省一半。
DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡,一般 apaceh gzip 压缩 都采用这个值。

AddOutputFilterByType 压缩的文件 mime 类型

至于已经是压缩过的图片格式如 jpg,音乐档案如 mp3、压缩文件如 zip 之类的,就没必要再压缩了,因为这种档案你一开放服务器传输时压缩,处理器时间会跑不完,而且就算你跑完,大小也一样,如果使用 PHP 函数之类压缩过的文件,httpd 服务是不会再次压缩的,系统级别的处理,总会比应用级别的效率高吧。

apache 的 mod_deflate 和 gzip compression 的对比

  • 不使用任何压缩: 430KB
  • 仅使用 gzip: 323KB
  • 仅使用 Apache 的 deflate 模块: 247KB
  • 同时使用 deflate 以及 gzip: 247KB
    至於时间的部份,apache gizp 压缩 后差异倒不是很大, 大约都是在 10-20 秒左右。

本文地址 https://shaoshilei.com/2014-03/linux-environment-how-to-open-and-configure-apache-gzip-compression-.html