博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache2.0x 开启gzip压缩
阅读量:7120 次
发布时间:2019-06-28

本文共 1687 字,大约阅读时间需要 5 分钟。

  hot3.png

最近蛋疼无事研究一些Web的优化,用工具page speed检测网站时发现还没有开启gzip压缩,于是上网找来资料实验一下;

在apache2.0以上(包括apache2.0)的版中gzip压缩使用的是mod_deflate模块,下面是具体配置步骤

第1步
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
打开httpd.conf后,先将上面两行配置前面的#号去掉,这样apache就会启用这两个模块,其中mod_deflate是压缩模块,就是对要传输到客户端的代码进行gzip压缩;mod_headers模块的作用是告诉浏览器页面使用了gzip压缩,如果不开启mod_headers那么浏览器就会对gzip压缩过的页面进行下载,而无法正常显示。
第2步 
在httpd.conf中加入以下代码,可以加到任何空白地方,不了解apache的朋友,如果担心加错地方,就放到http.conf文件的最后一行,如果是虚拟服务器可以写.htaccess文件里面,然后放在项目下即可。
<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/* #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #这段是告诉apache对php类型的文件进行压缩
    BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的
    BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成 Netscape ,但是事实上它没有问题
</IfModule>
本配置到这里apache中的gzip压缩就配置完成,重启apache后,新的配置就会生效。

最后再用工具检查一下,果然分数提高了很多~呵呵。 不过开启gzip功能需要额外CPU资源开销。

转载于:https://my.oschina.net/Jacker/blog/40723

你可能感兴趣的文章
最长不下降子序列
查看>>
Java_5.2 数组应用:*的打印
查看>>
Oracle数据库
查看>>
liunux 修改hostname
查看>>
面试题7:用两个栈实现队列
查看>>
第十七周项目6-学生成绩统计(一)
查看>>
第十三周项目1-动物这样叫
查看>>
php获取文件夹下面的文件列表和文件夹列表
查看>>
事务的概念和事务的控制
查看>>
thinkPHP小记
查看>>
推荐一系列优秀的Android开发源码
查看>>
Elasticsearch 的坑爹事——记录一次mapping field修改过程
查看>>
.net core 中间件管道底层剖析
查看>>
动态规划算法--理解
查看>>
ActiveMQ
查看>>
Mysql5.7出现this is incompatible with sql_mode=only_full_group_by
查看>>
charles工具过滤腾讯视频播放器广告
查看>>
mybatis3的返回结果集如何映射到对应的bean或者是map中?
查看>>
day24 Pythonpython 面向对象设计 类
查看>>
FJUT Home_W的gcd(乱搞)题解
查看>>