飞嗨,欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。(本博已于2015.12.6升级到php7,运行环境php7 php-fpm + nginx1.8.0)

appache启用gzip压缩

Linux lf 1318℃ 0评论

让文件再小一些,从服务器上传回到客户端就会更快一些……

一、gzip介绍
gzip是一种流行的文件压缩算法,应用的十分广泛,尤其linux平台。gzip压缩一个纯文本文件,效果是非常明显的,约减少70%大小。当然,这取决于被压缩的内容

利用appache中的gzip模块,可对网页进行压缩后再传输到客户端浏览器,最明显的好处就是加快网页的加载速度。当然,对于那些用3G/4G网络访问的童鞋,还口以节省流量么么哒。除此之外,另一个潜在的好处是gzip与搜索引擎的抓取工具有着更好的关系。如google就可以通过直接读取gzip文件来比普通手工抓取更快地检索网页。在google webmaster tools中,sitemap.xml.gz是直接作为sitemap提交的

二、web server处理http压缩的过程
1.web server接收到browser的http请求后,检查浏览器是否支持http压缩(Accept-Encoding信息);
2.如果浏览器支持http压缩,web server检查请求文件的后缀名;
3.如果请求文件是html css等静态文件,web server到压缩缓冲目录中检查是否已经存在请求文件的压缩文件。
4.如果请求文件的压缩文件不存在,web server向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件。
5.如果请求文件的压缩文件已经存在,则直接返回请求文件的压缩文件。
6.如果请求文件是动态文件,web server动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录。

三、开启appache的gzip压缩
appache利用gzip压缩的模块有两种:mod_gzip和mod_deflate。要使用gzip web压缩,首先load这两者任一。在appache2.0(含)以上版本gzip都是mod_deflate,偶的就是。
1.修改appache配置文件
LoadModule deflate_module modules/mod_deflate.so

2.在.htaccess或者virtualhost中定制压缩规则

<ifmodule mod_deflate.c>
SetOutputFilter DEFLATE #启用对特定MIME类型内容的压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #设置不对压缩的文件
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript #设置对压缩的文件
</ifmodule>

里面的文件MIME类型可以根据实际情况添加,像pdf 图片 音乐之类本身都已经高度压缩的格式,重复压缩作用不大,反而可能因为增加cpu处理时间及浏览器渲染问题而降低性能。

blog.feehi.com压缩前:

gzip压缩前

gzip压缩前

blog.feehi.com压缩后:

gzip压缩后

gzip压缩后

转载请注明:飞嗨 » appache启用gzip压缩

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情
粤ICP备15018643号-1