我希望有人可以帮我解决这个问题,因为这会让我发疯。
我在服务器上设置了mod_deflate,所有SEEMS都要正确设置,但是当我通过浏览器访问CSS或JavaScript文件时,它说文件没有被压缩。
但是,当我执行curl请求时,响应标头会说文件正在压缩。
是,在成功记录模块时安装并启用模块:
当我通过浏览器(Chrom,FF等),wget或任何在线页面速度测试请求文件时,它会记录类似
的内容"GET /var/cache/_2c95fa0249c997011610ad7ddd3332a8.css HTTP/1.0" gzip, deflate -/- (-%)
当我通过curl请求时,它提供了一个类似
的日志"HEAD /var/cache/_2c95fa0249c997011610ad7ddd3332a8.css HTTP/1.0" gzip, deflate 108466/358074 (30%)
有没有办法检查mod_deflate是否真的有效?我在mod_deflate的设置中遗漏了什么?可能与expires指令和mod_deflate发生冲突(除了mod_deflate之外我已经删除了所有内容但它仍然无效)?
以下是我设置的配置:
主要文件
<IfModule mod_deflate.c>
DeflateCompressionLevel 4
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{Accept-Encoding}i %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate
</IfModule>
.htaccess文件
<FilesMatch "\.(css|js)$">
Allow from all
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|avi|mov|mp3|mp4|rm)$ no-gzip dont-vary
#Dealing with proxy servers
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
有问题的文件:
http://diva.akqire.com/var/cache/_2c95fa0249c997011610ad7ddd3332a8.css
答案 0 :(得分:0)
添加以下标题:
Header set Content-Encoding x-deflate
如果使用Content-Length
编码,Apache服务器不会发送gzip
响应标头。
有没有办法检查mod_deflate是否真的有效?
使用自定义日志跟踪缩减使用情况:
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/httpd/deflate_log deflate
<强>参考强>