前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache2.4开启gzip

Apache2.4开启gzip

作者头像
Bob.Chen
发布2018-05-02 14:14:51
1.7K0
发布2018-05-02 14:14:51
举报

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

GZip压缩的基本流程如下:

代码语言:javascript
复制
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文件,具体文件和服务器配置有关。

加入如下代码:

代码语言:javascript
复制
<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则表示打开成功了。

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

代码语言:javascript
复制
ServerSignature Off
ServerTokens Prod

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

Ok,搞定。

参考

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档