Apache2.4开启gzip

开启gzip好处多多,对数据进行压缩数据,节省流量。

GZip压缩的基本流程如下:

1. Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩(Accept-Encoding 信息);
2. 如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
3. 如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
4. 如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
5. 如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6. 如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

在apache2.4中开启gzip,此处以ubuntu 14系统为例。

找到/etc/apache2/sites-available/default文件,具体文件和服务器配置有关。

加入如下代码:

<IfModule mod_deflate.c>
DeflateCompressionLevel 6
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json
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|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/*
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

简单解释几个配置:

  • SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
  • AddOutputFilterByType DEFLATE text/* 设置对文件是文本的内容进行压缩,例如text/html text/css text/plain等
  • application/postscript application/javascript application/x-javascript 对javascript文件进行压缩
  • AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp 对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 ,但是事实上它没有问题

之后重启apache service apache2 restart

重新打开页面,用开发者工具看下Response Header,看到Content-Encoding:gzip则表示打开成功了。

同时我们还可以去掉一些不必要的服务器信息,在刚才的配置中加入:

ServerSignature Off
ServerTokens Prod

可以去掉响应头中apache的一些版本信息。

Ok,搞定。

参考

http://www.cnblogs.com/fly_binbin/p/4253064.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

apache工作模式梳理

apache目前主要有两种模式:prefork模式和worker模式: 1)prefork模式(默认模式) prefork是Unix平台上的默认(缺省)MPM,...

27580
来自专栏meteorzx

Grunt配置及使用

1、node环境安装 http://www.runoob.com/nodejs/nodejs-install-setup.html 2、grunt安装 pack...

56260
来自专栏冷冷

【ehcache】 timeToLiveSeconds 和 timeToLiveSeconds 的区别

ehcache.xml <?xml version="1.0" encoding="UTF-8"?> <ehcache updateCheck="false" ...

20570
来自专栏刘远飞的专栏

Apache 性能配置优化

最近在进行apache性能优化设置。在修改apache配置文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯。本文讲述的apache配置调优均是在r...

3K00
来自专栏王小雷

pgAdmin4 ubuntu python 安装

ubuntu安装pgAdmin4,通过python的pip 安装 pgAdmin4.(首更时间20161205) 新版本的pgAdmin4目前支持mac/w...

40770
来自专栏沈唁志

简单配置.htaccess就可以实现的几个功能

36040
来自专栏小狼的世界

Apache服务器访问过慢分析及解决

起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针...

40120
来自专栏博客园

详解MongoDB管理命令

MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的...

18720
来自专栏Java技术分享

MongoDB基础语句

闺蜜苏苏工作是前端开发,她竟然被要求用到MongoDB数据库,所以先让她安装好先,再来测试下面语句~ MongoDB数据库安装地址:http://jingya...

23480
来自专栏散尽浮华

MongoDB日常运维操作命令小结

总所周知,MongoDB是一个NoSQL非数据库系统,即一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储...

1.2K70

扫码关注云+社区

领取腾讯云代金券