【问题标题】:Apache mod_deflate doesn't compress although logfile says it wouldApache mod_deflate 不压缩,虽然日志文件说它会
【发布时间】:2011-10-07 17:24:17
【问题描述】:

我尝试用谷歌搜索这个,但到目前为止没有成功。 我在 Debian 上有一个 apache 2.2.16,加载并启用了 mod_deflate,如下所示:

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

AddOutputFilterByType DEFLATE text/html text/css text/javascript application/x-javascript

DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) "%{User-agent}i"' deflate
CustomLog /var/log/apache2/deflate_log deflate env=!trash

当我打开一个页面时,日志文件显示它正在压缩我的 CSS 文件(和其他文件):

"GET / HTTP/1.1" -/- (-%) "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17"
"GET /www/js/dojoToolkit/dijit/themes/claro/claro.css HTTP/1.1" 17244/118618 (14%) "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17"
"GET /www/css/basis-min.css HTTP/1.1" 10877/61154 (17%) "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17"

但 Firebug 和 Chrome 仍然会获得未压缩的文件,尽管它们明确接受 gzip 和 deflate 编码。 一个有趣的事实是,

Vary: Accept-Encoding

header 仍然设置,与 Content-Encoding 不同:

GET /www/js/dojoToolkit/dijit/themes/claro/claro.css HTTP/1.1
Host: www.getabstract.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17
Accept: text/css,*/*;q=0.1
Accept-Language: en-us,de-ch;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.getabstract.com/
Cookie: __utma=73758084.1377620539.1310985055.1310989511.1310990668.3; __utmz=73758084.1310985055.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); fpc10001731534234=Y63gTWM9|aCXc2doLaa|fses10001731534234=|aCXc2doLaa|Y63gTWM9|fvis10001731534234=Zj1odHRwJTNBJTJGJTJGd3d3LmdldGFic3RyYWN0LmNvbSUyRiZiPUhvbWVwYWdlJTIwRU4=|8M8Y7oT7YH|8M8Y7oT7YH|8M8Y7oT7YH|8|8M8Y7oT7YH|8M8Y7oT7YH; __ar_v4=262MD4C3UNHKBELB3VUEGS%3A20110717%3A20%7CTBE3U4YYEBCGHJ2QAUBVE4%3A20110717%3A20%7CXVIJYAN7KFDQXPECC3AI7E%3A20110717%3A20; JSESSIONID=abcKrMR5EVQv68Os6h9et; __utmc=73758084
Pragma: no-cache
Cache-Control: no-cache

回复:

HTTP/1.1 200 OK
Date: Mon, 18 Jul 2011 13:54:45 GMT
Server: Apache
Last-Modified: Wed, 04 May 2011 10:49:12 GMT
Etag: "28023a-1cf5a-4a27101cc1a00"
Accept-Ranges: none
Cache-Control: max-age=600
Expires: Mon, 18 Jul 2011 14:04:45 GMT
Vary: Accept-Encoding
Content-Length: 118618
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/css

有什么想法吗?

提前致谢。 马克

【问题讨论】:

    标签: apache2 gzip mod-deflate


    【解决方案1】:

    长镜头:apache 是否正确处理您的 css 文件 - 即 mime 类型是否配置正确?

    您的输出过滤器设置在哪里,在包含的配置或 .htaccess 中 [检查 .htaccess 是否允许覆盖]

    您能否删除过滤器并查看它是否会压缩所有内容?

    最后 - 是否有我们可以测试的公共 URL?

    -肖恩

    编辑:

    你好,你用什么来本地测试?我可以在 firefox/firebug/yslow 中看到正确的内容编码。 - [我还看到了其他几个问题] - 如果你没有使用 firebug,我建议检查一下 [强烈!] - 但否则,是的,看来你的压缩工作正常。

    -肖恩

    【讨论】:

    • 天哪,我解决了!一切正常。我使用在线 gzip 测试服务进行了测试,它说它已压缩并显示了相应的标头。显然,在我的机器和服务器之间有一些东西,它的行为类似于代理并解压缩所有内容。我什至没有看到 google.com 被压缩,尽管它是。感谢您的回答。为了确保,也许你也可以测试:link
    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 2012-02-19
    • 1970-01-01
    • 2010-09-09
    • 2015-08-15
    • 2021-09-23
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多