我无法让我的网站使用gzip压缩.
我最近在css-tricks.com 观看了Chris Coyier的这段视频.在视频中,他谈到了启用gzip压缩以使网站运行得更快.
根据他的指示,我通过html5boilerplate.com链接到github,从他们的.htaccess文件中复制gzip压缩代码,将其粘贴到我自己的文件中,并将其上传到我的网站.
我通过gzipwtf.com对它进行了测试,但似乎没有用.谁能帮我这个?
我的.htaccess文件如下所示:
# ----------------------------------------------------------------------
# Trim www
# ----------------------------------------------------------------------
RewriteEngine On
RewriteCond %{HTTP_HOST} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/$1 [L,R=301]
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \ …Run Code Online (Sandbox Code Playgroud) 我通过apache提供所有内容,Content-Encoding: zip但即时压缩.我的大量内容是磁盘上的静态文件.我想事先gzip文件,而不是每次请求时压缩它们.
我认为,这是mod_gzip在Apache 1.x中自动执行的操作,但只是将文件与.gz放在一起.不再是这种情况了mod_deflate.
有人能告诉我以下脚本在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>
Run Code Online (Sandbox Code Playgroud) 我在Apache httpd.conf中添加了以下行: -
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/x-javascript application/json
Run Code Online (Sandbox Code Playgroud)
我有一个包含脚本的html文件(test.html): -
<script type="text/javascript" src="/test.js"></script>
Run Code Online (Sandbox Code Playgroud)
问题是,每次加载test.html时,test.js也会加载HTTP状态:200.
问题是:为什么不满足条件GET?
如果我在httpd.conf中注释掉"AddOutputFilterByType"行,Apache就会发送304.
如果我在httpd.conf中启用AddOutputFilterByType,请求标头是: -
Host: optimize User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729) FirePHP/0.2.4 Accept: */* Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://optimize/ Cookie: PHPSESSID=nbq6h0eeahkshkcbc6ctu2j2b4 If-Modified-Since: Tue, 19 May 2009 07:06:46 GMT If-None-Match: "2000000000717f-2c25a-46a3e8dcc2ad8"-gzip Cache-Control: max-age=0
响应头是: -
Date: Fri, 22 May 2009 07:03:40 GMT Server: Apache/2.2.9 (Win32) PHP/5.2.6 Last-Modified: …
是否有命令行命令可以判断mod deflate是否在Apache上运行?
谁能告诉我使用mod_deflate和zlib output_compression之间的区别?
我知道zlib是用PHP完成的,而mod_deflate是在Apace中完成的,我的.htaccess文件看起来像:
php_flag zlib.output_compression On
Run Code Online (Sandbox Code Playgroud)
要么:
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|gif)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)
两者的优点/缺点是什么?
我读了一些关于HTTP头压缩的文章.今天我安装了YSlow,它建议我压缩资源(text/html,javascript,css和images).现在我正在阅读Apache mod_deflate的文档,但在示例中不压缩图像.
我应该或不应该压缩我的网站中的图像?
如何在Apache2中禁用mod_deflate
要么
我在共享托管环境中有一个长时间运行的脚本,它输出一堆XML
有时(仅在某些情况下),随机GZIP标题将出现在我的输出中,输出将被终止.
例如
0000000: 3c44 4553 435f 4c4f 4e47 3e3c 215b 4344 <DESC_LONG><![CD
0000010: 4154 415b 1fc2 8b08 0000 0000 0000 03c3 ATA[............
0000020: b3c3 8b57 c388 c38c 2b28 2d51 48c3 8bc3 ...W....+(-QH...
0000030: 8c49 5528 2e48 4dc3 8e4c c38b 4c4d c391 .IU(.HM..L..LM..
0000040: c3a3 0200 c291 4464 c383 1900 0000 0d0a ......Dd........
Run Code Online (Sandbox Code Playgroud)
要么
0000000: 3c2f 5052 4f44 5543 543e 0d0a 1fc2 8b08 </PRODUCT>......
0000010: 0000 0000 0000 03c3 b3c3 8b57 c388 c38c ...........W....
0000020: 2b28 2d51 48c3 8bc3 8c49 …Run Code Online (Sandbox Code Playgroud) 运行资产时:预编译rake任务,会创建应用程序资产的gzip压缩版本.根据资产管道的Rails指南,您可以配置Web服务器(在我的情况下是Apache 2.2)来提供这些预压缩文件,而不是让Web服务器完成工作.
我无法弄清楚的是如何配置mod_deflate以便提供这些文件而不是双重压缩然后提供?
我通过httpd.conf启用了mod_deflate:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Run Code Online (Sandbox Code Playgroud)
我已经将rails指南上的代码转换为公共/资产中的.htaccess:
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
Header unset Last-Modified
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"
# Serve gzipped versions …Run Code Online (Sandbox Code Playgroud) apache ×10
mod-deflate ×10
gzip ×4
.htaccess ×2
http ×2
php ×2
apache2 ×1
compression ×1
http-headers ×1
httpd.conf ×1
laravel ×1
zlib ×1