,# 启用gzip压缩,deflate_module modules/mod_deflate.so,,# 设置压缩级别,deflate_comp_level 6,,# 指定需要压缩的文件类型,AddOutputFilter DEFLATE text/html text/plain text/css application/json application/javascript,
“,,重启Apache服务后,gzip压缩配置生效。 Apache实现gzip压缩配置
什么是gzip压缩?
Gzip是一种流行的文件压缩算法,应用广泛,尤其在Linux平台上,使用gzip压缩后,文件大小可以缩小到原来的1/4左右(最大压缩级别),效果显著,利用Apache中的Gzip模块,可以使用Gzip压缩算法对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器,经过压缩后,实际降低了网络传输的字节数,最明显的好处就是加快了网页加载速度。
Web服务器处理HTTP压缩的过程
Web服务器接收到浏览器的HTTP请求后,会检查浏览器是否支持HTTP压缩(AcceptEncoding信息),如果浏览器支持HTTP压缩,Web服务器会检查请求文件的后缀名,如果请求文件是HTML、CSS等静态文件,Web服务器会在压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件,如果请求文件的压缩文件不存在,Web服务器会向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件,如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件,如果请求文件是动态文件,Web服务器会动态压缩内容并返回给浏览器,压缩内容不存放到压缩缓存目录中。
Apache中开启gzip压缩服务
修改Apache的http.conf文件
1、启用mod_deflate模块:
在Apache的配置文件httpd.conf
中,找到以下行并确保没有注释符号“#”:
“`plaintext
LoadModule deflate_module modules/mod_deflate.so
“`
保存并关闭文件,重新启动Apache服务器以使更改生效:
“`bash
sudo systemctl restart apache2
“`
2、配置gzip压缩:
在httpd.conf
文件中添加以下代码:
“`plaintext
<IfModule mod_deflate.c>
# 告诉apache对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级9
DeflateCompressionLevel 9
# 设置不对后缀gif,jpg,jpeg,png,exe等文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ nogzip dontvary
# 压缩类型html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xhttpdphp text/css application/xjavascript
AddOutputFilter DEFLATE js css
</IfModule>
“`
3、配置文件缓存时间:
去除mod_headers.so
模块前面的“#”号注释:
“`plaintext
LoadModule headers_module modules/mod_headers.so
“`
接着在httpd.conf
最末尾添加文件缓存时间配置的代码:
“`plaintext
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set CacheControl "maxage=2592000"
</FilesMatch>
“`
4、重启Apache服务:
配置完成后,重启Apache服务即可。
Apache服务异常停止处理方法
如果在httpd.conf
末尾添加Gzip压缩配置,且重启Apache服务后,发现服务无法正常启动,可以尝试以下方法:
1、查看Apache安装目录下的配置文件:
确认是否有httpddeflate.conf
文件。
2、在httpd.conf中引用httpddeflate.conf:
添加以下代码:
“`plaintext
# 引用GZIP压缩模块配置文件
#Include conf/extra/httpddeflate.conf
“`
3、修改httpddeflate.conf里的配置代码:
“`plaintext
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat ‘"%r" %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate
CustomLog logs/deflate.log deflate
<Location />
# 压缩类型html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xhttpdphp text/css application/xjavascript
# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gziponlytext/html
“`
相关问答FAQs
1、问题:如何检查网页是否成功开启Gzip压缩?
解答:你可以使用在线工具如https://www.webpagetest.org/来检测你的站点是否开启了gzip压缩,该工具能够详细展示网页的加载情况,包括是否使用了gzip压缩以及压缩比率等信息。
2、问题:为什么有些文件类型不建议使用Gzip压缩?
解答:一些文件类型如PDF、图片、音乐文档等本身已经采用了高度压缩格式,重复使用Gzip压缩的作用不大,反而可能会因为增加CPU的处理时间及浏览器的渲染问题而降低性能,对于这些文件类型,通常不需要进行Gzip压缩。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。