33

有人可以告诉我以下脚本在 CPU 负载性能和压缩方面的区别吗?

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 


<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch> 
</ifModule> 
4

6 回答 6

19

这两个模块都做同样的事情:即时添加 gzip 压缩。

这些天你应该使用的一个是mod_deflate - 它是更现代和推荐的一个,并且与 Apache 一起分发。mod_gzip 是一个较旧的第三方实现,没有充分的理由再使用它。

不要被名称所迷惑,以为它们使用不同的压缩方案。它们都使用 gzip(这是一种使用称为 DEFLATE 的压缩算法的格式)。后者仅称为 mod_deflate,因为取名为 mod_gzip。它们都将使用相同的设置实现相同的压缩级别。

它们具有不同的配置(可能包括不同的默认设置),因此您需要查找您正在使用的特定配置的文档。

于 2017-10-25T10:00:20.470 回答
10

我猜你问的是这两者之间的区别,而不是一般的压缩。在这种情况下,我建议使用依赖于仍然活跃的项目 zlib 的 mod_deflate。顺便说一句,比较两者的旧文章(6-7 岁)不再相关。

于 2013-03-05T08:54:36.270 回答
6

大多数压缩算法在应用于纯文本文件时,可以将其大小减少 70% 或更多,具体取决于文件中的内容。使用压缩算法时,标准压缩级别和最大压缩级别之间的差异很小,尤其是当您考虑处理这些额外压缩通道所需的额外 CPU 时间时。这在动态压缩 Web 内容时非常重要。大多数软件内容压缩技术使用 6 级(共 9 级)的压缩级别来节省 CPU 周期。6 级和 9 级之间的文件大小差异通常很小,不值得花费额外的时间。

对于标识为 text/.* MIME 类型的文件,可以在将文件放在网络上之前对其应用压缩。这同时减少了传输的字节数并提高了性能。测试还表明,Microsoft Office 和 PostScipt 文件可以进行 GZIP 编码以供压缩模块传输。

一些不能进行 GZIP 编码的重要 MIME 类型是外部 JavaScript 文件、PDF 文件和图像文件。Javascript 文件的问题主要是由于浏览器软件中的错误,因为这些文件实际上是文本文件,并且通过压缩传输整体性能将受益。PDF 和图像文件已经被压缩,尝试再次压缩它们只会使它们变大并导致浏览器出现潜在的渲染问题。

在向客户端发送压缩文件之前,服务器确保接收数据的客户端正确理解并呈现压缩格式至关重要。了解压缩内容的浏览器会发送以下客户端请求标头的变体:

Accept-encoding: gzip

Accept-encoding: gzip, deflate 

当前的主要浏览器在发送的每个请求中都包含此消息的一些变体。如果服务器看到标头并选择提供压缩内容,它应该使用服务器响应标头进行响应:

更多信息请看这篇文章:http ://www.linuxjournal.com/article/6802

于 2013-03-01T22:38:01.293 回答
3

启用 mod_deflate 和 mod_gzip 基本上完成了同样的事情,它们都在发送给您网站的访问者之前压缩您的 web 文件。

但是,两者之间存在差异;mod_deflate有时可以比mod_gzip具有更好的压缩百分比。您应该选择 mod_deflate 的另一个原因是因为它作为 mod_gzip 得到了更好的支持,这使得配置更容易,因为它有更好的文档。更多信息可以在这里找到。

于 2014-11-12T10:49:28.970 回答
1

在 linuxjournal.com 上查看这篇文章

http://www.linuxjournal.com/article/6802

除此之外,mod_deflate 更容易配置,并且通常随 apache 包一起提供。

于 2013-08-20T07:49:10.843 回答
-1

恕我直言,您应该避免对静态文件使用 mod_deflate,而是通过 mod_rewrite 提供具有最佳压缩效果的预压缩文件(7zip 创建了 gzip AFAIK)。Apache 不缓存 gzip 后的静态文件。

对于动态文件:取决于可用带宽 - mod_deflate 需要大量处理能力,但如果您的服务器能够溢出网络,则可用。

于 2017-04-12T19:46:18.590 回答