Apache服务器HTTP请求Gzip处理的过程
1、Apache服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩(Accept-Encoding 信息)。
2、如果浏览器支持HTTP压缩,Apache服务器检查请求文件的后缀名。
a、如果请求文件是HTML、CSS、JS、Images等静态文件,Apache服务器从压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件,如果不存在,返回压缩的请求文件,并在压缩缓冲目录中存放压缩文件,如果已经存在,则直接返回请求文件的压缩文件。
b、如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
Apache支持GZIP压缩的配置
1、编辑 http.conf 文件,开启mod_deflate模块
去掉 #LoadModule headers_module modules/mod_headers.so 前面的注释#
去掉 #LoadModule deflate_module modules/mod_deflate.so 前面的注释#
去掉 #LoadModule filter_module modules/mod_filter.so 前面的注释#
2、配置Gzip压缩相关参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<IfModule mod_deflate.c> #压缩率,6是建议值。 DeflateCompressionLevel 6 AddOutputFilterByType DEFLATE text /plain AddOutputFilterByType DEFLATE text /html AddOutputFilterByType DEFLATE text /xml AddOutputFilterByType DEFLATE text /css AddOutputFilterByType DEFLATE text /javascript AddOutputFilterByType DEFLATE application /xhtml +xml AddOutputFilterByType DEFLATE application /xml AddOutputFilterByType DEFLATE application /rss +xml AddOutputFilterByType DEFLATE application /atom_xml AddOutputFilterByType DEFLATE application /x-javascript AddOutputFilterByType DEFLATE image /svg +xml AddOutputFilterByType DEFLATE image /gif image /png image /jpe image /swf image /jpeg image /bmp #排除不需要压缩的文件 BrowserMatch ^Mozilla /4 gzip -only-text /html BrowserMatch ^Mozilla /4 .0[678] no- gzip BrowserMatch bMSIE !no- gzip ! gzip -only-text /html SetEnvIfNoCase Request_URI .(?:html|htm)$ no- gzip dont-varySetEnvIfNoCase SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no- gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no- gzip dont-vary < /IfModule > |
3、重启Apache服务器并且使用浏览器请求验证是否Gzip生效。
Leave a reply