`
duanjiangong
  • 浏览: 62846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache2下的网站启用Gzip(Deflate)压缩

阅读更多

一般默认没有装 Deflate ,最直接的方法就是重装 Apache ,在原来的配置文件后加上 --enable-deflate --enable-headers
如果不想重装,就单独编译, mod_deflate.c 在源文件目录的 modules/filters 下, mod_hearders.c 则在 modules/metadata 目录下。如果用 apxs -i -a -c 的方法不行,请参考下面的办法,以安装 mod_headers 为例。

cd modules/metadata/
apxs -i -a -c mod_headers.c
Warning!  dlname not found in /usr/local/apache2.2.0/modules/mod_headers.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2.2.0/modules/mod_headers.so
chmod:
无法访问 ‘/usr/local/apache2.2.0/modules/mod_headers.so’: 没有那个文件或目录
apxs:Error: Command failed with rc=65536


gcc -shared -o mod_headers.so mod_headers.o
cp mod_headers.so /usr/local/apache2.2.0/modules
/usr/local/apache2.2.0/bin/apxs -i -a -c mod_headers.c
Warning!  dlname not found in /usr/local/apache2.2.0/modules/mod_headers.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2.2.0/modules/mod_headers.so
[activating module `headers' in /usr/local/apache2.2.0/conf/httpd.conf]

 

如安装mod_deflate.c失败,提示zlib未找到时,可用yum install zlib-devel.i386先安装zlib后再试。

安装成功了。

装完后,其在 conf/httpd.conf 中加了如下两句:
LoadModule deflate_module     modules/mod_deflate.so
LoadModule headers_module     modules/mod_headers.so

其实安装 deflate mod_headers 并不是必须,那为什么要安装呢?主要是其官方配置文件中使用了 header 模块来确保不会发送错误的内容。
<Location />

        # 插入过滤器

        SetOutputFilter DEFLATE

        # Netscape 4.x 有一些问题 ...

        BrowserMatch ^Mozilla/4 gzip-only-text/html

        # Netscape 4.06-4.08 有更多的问题

        BrowserMatch ^Mozilla/4\.0[678] no-gzip

        # MSIE 会伪装成 Netscape ,但是事实上它没有问题

        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

        # 不压缩图片

        SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary

        # 确保代理不会发送错误的内容

        Header append Vary User-Agent env=!dont-vary

</Location>

另有一种简单的设置:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
很好理解,可以放在 Directory,Virtualhost,Location 任意地方。

怎么看是否生效了呢?来记录下日志:
#
声明输入流的 byte 数量
DeflateFilterNote Input instream
#
声明输出流的 byte 数量
DeflateFilterNote Output outstream
#
声明压缩的百分比
DeflateFilterNote Ratio ratio
#
声明日志类型
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate

大部分 CSS,htm 页面都可以压缩到 30% ,即文章开头我提到的能压缩 70%

参考文档:
Apache
模块 mod_deflate
http://www.itlearner.com/code/apache2.2/mod/mod_deflate.html
Apache deflate
模块配置说明
http://www.itlearner.com/article/2007/3819.shtml

如果出现如下错误
Cannot load /usr/local/apache/modules/mod_deflate.so into server: /usr/local/apache/modules/mod_deflate.so: undefined symbol: inflateEnd
需要在 LoadModule deflate_module  modules/mod_deflate.so 的前面加载zlib.so
32 操作系统增加以下内容:
LoadFile /usr/lib/libz.so
LoadModule deflate_module     modules/mod_deflate.so

64 操作系统增加以下内容:
LoadFile /usr/lib64/libz.so
LoadModule deflate_module     modules/mod_deflate.so

 

备注: 请以zlib实际文件为准,有时为libz.so.1

分享到:
评论

相关推荐

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

    在 Apache 中,Gzip 压缩的配置主要是通过 deflate_module 模块来实现的。下面是 Gzip 压缩的配置详解: * SetOutputFilter DEFLATE:这是一个开关,告诉 Apache 对传输到浏览器的内容进行压缩。 * SetEnvIfNoCase ...

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

    总的来说,启用 IHS 的 GZip 压缩能够提升网站性能,降低服务器负载,改善用户体验。然而,需要注意的是,过度的压缩可能会增加服务器的 CPU 使用率,因此需要根据实际情况调整压缩级别和选择要压缩的文件类型。同时...

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

    除了在Apache服务器上启用GZip压缩外,有时还需要在命令行下操作GZip文件。这里列出了一些常见的GZip命令供参考: - **压缩文件**:`gzip filename`。 - **解压文件**:`gzip -d filename.gz`。 - **查看压缩文件...

    Apache开启GZIP压缩功能方法

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

    iis和apache开启gzip的方法

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

    最简单的gzip压缩

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

    gzip 压缩 三种方法

    - **浏览器兼容性**:并非所有浏览器都支持gzip压缩,因此在启用gzip之前,应先检测客户端是否接受gzip编码,可以通过检查`Accept-Encoding`头部来实现。 - **性能影响**:虽然gzip能显著减小传输数据量,但也会...

    js压缩gzip格式

    以下是在Apache和Nginx服务器上启用gzip的简单步骤: 1. **Apache配置**: - 打开`httpd.conf`或`.htaccess`文件。 - 添加或修改以下指令来启用gzip: ``` LoadModule deflate_module modules/mod_deflate.so ...

    gzip压缩js,csss文件

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

    tomcat,apache,iis的GZIP配置

    【GZIP配置详解:Tomcat, Apache, IIS】 GZIP是一种广泛使用的数据压缩...总的来说,无论是在Tomcat、Apache还是IIS服务器上,启用GZIP压缩都是提升Web性能的有效手段,只需要根据各自服务器的配置方式进行适当调整。

    apache启用gzip压缩的实现方法

    【Apache启用Gzip压缩的实现方法】 Gzip是一种高效的文件压缩算法,广泛应用于Linux系统,尤其是在Web服务领域。它能够显著减小纯文本文件的大小,通常可将文件压缩70%以上,具体压缩比例取决于文件内容。Apache...

    GZIP很多网站要求用GZIP压缩

    2. **HTTP头部设置**:为了启用GZIP压缩,服务器需要在HTTP响应头中包含`Content-Encoding: gzip`字段,告知浏览器数据是经过GZIP压缩的。同时,浏览器在请求头中可以发送`Accept-Encoding: gzip`,表示支持接收GZIP...

    关于Gzip压缩js文件提高网站运行速度

    1. **服务器配置**:对于Apache服务器,可以在`.htaccess`文件中添加以下代码来启用Gzip: ``` &lt;IfModule mod_deflate.c&gt; AddOutputFilterByType DEFLATE text/plain text/...

    php gzip压缩输出的实现方法

    在实际部署时,还需要考虑服务器的性能和网络带宽等因素,以确保启用gzip压缩不会对服务器的正常运行产生负面影响。通常情况下,gzip压缩是推荐配置,因为它在压缩效率和资源占用之间的平衡做得很好。对于静态内容...

    gzip解压和压缩,在内存使用

    服务器端可以通过设置如Apache或Nginx的配置来启用gzip压缩,以降低带宽使用。 总的来说,gzip压缩在IT行业中扮演着重要的角色,尤其是在网络传输中,它能够显著减少数据量,提高网络性能。通过理解gzip的工作原理...

    httpwatch 服务器gzip响应导致不能查看stream的响应

    Apache服务器通过启用如deflate模块来实现gzip压缩。当服务器返回gzip压缩的数据时,浏览器会自动解压并呈现内容。然而,httpwatch等抓包工具可能无法正确处理这种压缩的数据,因此在stream中看到的响应数据长度为0...

    利用压缩网页来提升网站浏览速度

    通过正确配置服务器,如Apache和Tomcat,启用GZIP或deflate压缩,可以显著减少页面传输数据量,加快用户体验。值得注意的是,虽然压缩会增加服务器CPU负担,但通常这点开销是可接受的,尤其是在提升整体浏览速度方面...

    Apache2中文教程

    例如,使用MPM(Multi-Processing Module)如prefork或worker,调整`MaxKeepAliveRequests`和`KeepAliveTimeout`参数,以及启用GZIP压缩等。 九、故障排查 当遇到问题时,Apache2的错误日志是排查故障的重要资源。...

Global site tag (gtag.js) - Google Analytics