`

apache启用gzip压缩方法

 
阅读更多

一、gzip介绍

      Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。

      利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。

      网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。例如 Google就可以通过直接读取gzip文件来比普通手工抓取更快地检索网页。在Google网站管理员工具(Google Webmaster Tools)中你可以看到,sitemap.xml.gz 是直接作为Sitemap被提交的。

      而这些好处并不仅仅限于静态内容,PHP动态页面和其他动态生成的内容均可以通过使用Apache压缩模块压缩,加上其他的性能调整机制和相应的服务器端缓存规则,这可以大大提高网站的性能。因此,对于部署在Linux服务器上的PHP程序,在服务器支持的情况下,我们建议你开启使用Gzip Web压缩。

二、Web服务器处理HTTP压缩的过程如下:

    1. Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩(Accept-Encoding 信息);

    2. 如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;

    3. 如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;

    4. 如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;

    5. 如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;

    6. 如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

下面是两个演示图:

 

未使用Gzip:

image

开启使用Gzip后:

image

、让我们开始吧!

      Apache上利用Gzip压缩算法进行压缩的模块有两种:mod_gzip 和mod_deflate。要使用Gzip Web压缩,请首先确定你的服务器开启了对这两个组件之一的支持。在Linux服务器上,现在已经有越来越多的空间商开放了对它们的支持,有的甚至是同时 支持这两个模块的。例如目前Godaddy、Bluehost及DreamHosts等空间商的服务器都已同时支持mod_gzip 和mod_deflate。

      虽然使用Gzip同时也需要客户端浏览器的支持,不过不用担心,目前大部分浏览器都已经支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。

     通过查看HTTP头,我们可以快速判断使用的客户端浏览器是否支持接受gzip压缩。若发送的HTTP头中出现以下信息,则表明你的浏览器支持接受相应的gzip压缩:

Accept-Encoding: gzip 支持mod_gzip
Accept-Encoding: deflate 支持mod_deflate 

Accept-Encoding: gzip,deflate 同时支持mod_gzip 和mod_deflate

     如果服务器开启了对Gzip组件的支持,那么我们就可以在http.conf或.htaccess里面进行定制,下面是一个.htaccess配置的简单实例:

# mod_gzip:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
<ifModule>
# mod_deflate:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6 #压缩率, 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 application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>

      里面的文件MIME类型可以根据自己情况添加,至于PDF 、图片、音乐文档之类的这些本身都已经高度压缩格式,重复压缩的作用不大,反而可能会因为增加CPU的处理时间及浏览器的渲染问题而降低性能。所以就没必要再通过Gzip压缩。通过以上设置后再查看返回的HTTP头,出现以下信息则表明返回的数据已经过压缩。即网站程序所配置的Gzip压缩已生效。

Content-Encoding: gzip

注:不管使用mod_gzip 还是mod_deflate,此处返回的信息都一样。因为它们都是实现的gzip压缩方式。

     除此之外,还可以通过一些在线检测工具(如:http://www.whatsmyip.org/http_compression/来检测你的网站内容是否已经过Gzip压缩。

四、mod_gzip 和mod_deflate的主要区别是什么?使用哪个更好呢?

      首先一个区别是安装它们的Apache Web服务器版本的差异。Apache 1.x系列没有内建网页压缩技术,所以才去用额外的第三方mod_gzip 模块来执行压缩。而Apache 2.x官方在开发的时候,就把网页压缩考虑进去,内建了mod_deflate 这个模块,用以取代mod_gzip。虽然两者都是使用的Gzip压缩算法,它们的运作原理是类似的。

       第二个区别是压缩质量。mod_deflate 压缩速度略快而mod_gzip 的压缩比略高。一般默认情况下,mod_gzip 会比mod_deflate 多出4%~6%的压缩量。

       那么,为什么使用mod_deflate?第三个区别是对服务器资源的占用。一般来说mod_gzip 对服务器CPU的占用要高一些。mod_deflate 是专门为确保服务器的性能而使用的一个压缩模块,mod_deflate 需要较少的资源来压缩文件。这意味着在高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快。

      不太明白?简而言之,如果你的网站,每天不到1000独立访客,想要加快网页的加载速度,就使用mod_gzip。虽然会额外耗费一些服务器资源, 但也是值得的。如果你的网站每天超过1000独立访客,并且使用的是共享的虚拟主机,所分配系统资源有限的话,使用mod_deflate 将会是更好的选择。

     另外,从Apache 2.0.45开始,mod_deflate 可使用DeflateCompressionLevel 指令来设置压缩级别。该指令的值可为1(压缩速度最快,最低的压缩质量)至9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质 量较为平衡的值)。这个简单的变化更是使得mod_deflate 可以轻松媲美mod_gzip 的压缩。

P.S. 对于没有启用以上两种Gzip模块的虚拟空间,还可以退而求其次使用php的zlib函数库(同样需要查看服务器是否支持)来压缩文件,只是这种方法使用起来比较麻烦,而且一般会比较耗费服务器资源,请根据情况慎重使用。

五、效果截图

启用之前:

image

启用之后:

image

原文链接:http://bbs.linuxtone.org/home-space-uid-11671-do-blog-id-295.html

<!-- Begin anyShare -->
分享到:
评论

相关推荐

    apache开启gzip压缩网络传输减少带宽

    Apache 开启 Gzip 压缩网络传输减少带宽 Apache 是一个流行的开源 Web 服务器软件,它提供了许多功能来提高 Web 服务器的性能和安全性。本文将介绍如何在 Apache 中开启 Gzip 压缩功能,以减少网络传输的带宽。 ...

    iis和apache开启gzip的方法

    标题中的"IIS和Apache开启Gzip的方法"是指在两种主流的Web服务器——Internet Information Services (IIS) 和 Apache HTTP Server 上启用Gzip压缩的技术过程。Gzip是一种广泛使用的数据压缩算法,尤其在网络传输中,...

    Apache开启GZIP压缩功能方法

    **Apache开启GZIP压缩功能详解** GZIP是一种广泛使用的文件压缩算法,尤其在Linux系统上,它能够有效地减小文件在网络中的传输体积,显著提升网页加载速度。由于现代浏览器普遍支持GZIP,所以开启Apache服务器上的...

    apache启用gzip压缩的实现方法

    综上所述,对于部署在Linux服务器上的PHP程序,开启Gzip压缩不仅可以加速网页加载,节省带宽,还能提高搜索引擎的抓取效率,是提升网站性能的必要措施。正确配置Apache服务器的Gzip模块,有助于实现这一目标。

    gzip 压缩 三种方法

    在服务器配置文件中(如Apache的`.htaccess`或Nginx的`nginx.conf`),你可以直接设置HTTP响应头来开启gzip压缩。在`.htaccess`中添加以下行: ```apacheconf AddOutputFilterByType DEFLATE text/plain text/...

    使Apache实现gzip压缩配置

    Apache默认的http.conf配置文件中没有开启gzip压缩,apache1.3.x可以用mod_gzip进行优化网页浏览的...下面说一下怎样在Apache2下开启gzip压缩: 代码如下: # 加载deflate模块 LoadModule deflate_module modules/m

    在Apache服务器上启用GZip压缩静态内容的方法

    ### 在Apache服务器上启用GZip压缩静态内容的方法 #### 一、引言 随着互联网的发展,用户对于网页加载速度的要求越来越高。为了提升用户体验并减轻服务器带宽压力,开发者们经常采用压缩技术来减小文件传输量。...

    启用 IHS GZip 压缩提高网络 IO 性能

    这段配置告诉 IHS 对哪些类型的文件启用 GZip 压缩,同时排除了一些已经压缩过的或者不适合压缩的文件类型。`DeflateCompressionLevel` 设置了压缩级别,数字范围是 1 到 9,数值越大,压缩率越高,但消耗的 CPU ...

    php gzip压缩输出的实现方法

    在这个配置中,mod_gzip_on指令开启gzip压缩功能,mod_gzip_dechunk指令允许对分块传输编码的数据进行压缩,而mod_gzip_item指令则用来指定哪些文件类型应当被包括或排除在压缩范围之外。上面的示例配置指定了需要...

    最简单的gzip压缩

    `.htaccess`文件是Apache web服务器配置的一部分,用于控制目录级别的访问权限和设置各种服务器功能,包括启用gzip压缩。 在`.htaccess`文件中,你可以添加如下代码来启用服务器端的gzip压缩,以优化网站性能: ``...

    gzip压缩js,csss文件

    在Web服务器上启用gzip压缩,可以显著降低页面的加载时间,尤其是在带宽有限的情况下,效果尤为明显。 首先,我们要准备要压缩的js和css文件,并将它们放入一个名为“gzip”的文件夹下。这样做是为了方便管理和操作...

    js压缩gzip格式

    此外,它可能还包含了如何在服务器配置文件中启用gzip的示例,帮助开发者更好地理解和应用gzip压缩。 总之,js压缩成gzip格式是提高网页性能的重要手段,通过合理利用gzip,可以有效减少网络传输的数据量,提升用户...

    开启TOMCAT6的GZIP压缩

    ### 开启TOMCAT6的GZIP压缩 #### 背景与意义 随着互联网的发展,用户对于网页加载速度的要求越来越高。为了提升用户体验并减轻网络带宽的压力,TOMCAT服务器可以通过启用GZIP压缩功能来优化数据传输。GZIP是一种...

    Tomcat多端口域名访问并配置开启gzip压缩方法

    本文主要讲解了如何在Tomcat中配置多端口域名访问,并且详细介绍了如何开启gzip压缩,以提高Web应用的性能和响应速度。 首先,我们要了解如何在Tomcat中配置不同的端口来访问同一域名。在Web服务器中,端口是用来...

    tomcat设置gzip压缩共2页.pdf.zip

    3. **启用Gzip压缩**:在`&lt;Connector&gt;`标签内,添加`compression="on"`属性来开启Gzip压缩。同时,可以设置`compressionMinSize="2048"`,表示只有当响应体大小超过2048字节时才启动压缩,以避免对小文件的过度压缩...

    linux下apache的开启gzip的方法

    开启GZIP压缩是优化网站性能的重要步骤,因为GZIP可以显著减少HTTP响应的数据量,从而加快网页加载速度,降低带宽消耗。以下是详细说明如何在Linux上的Apache服务器上启用GZIP压缩的方法: 首先,你需要确保Apache...

Global site tag (gtag.js) - Google Analytics