源自http://hi.baidu.com/mrlbz/blog/item/69447759beedafc19d82046b.html

我Wordpress的主机为LAMP架构,即Linux+ Apache+ MySQL + PHP  ,突然想到有个gzip压缩可以提高网页访问的速度,所以就想做一下测试,同时了解一下如何开启gzip压缩。通过网上查询得知,在Apache中开启 gzip压缩方法为: 
1.

在httpd.conf或者博客根目录的.htaccess文件中加入如下规则(Apache服务器需要支持mod_deflate)

<ifmodule mod_deflate.c> 
AddOutputFilter DEFLATE html xml php js css 
</ifmodule>

或者

2.

<ifmodule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css 
</ifmodule>

经 过查看,主机的Apache支持mod_deflate(使用httpd -M查看是否有mod_deflate模块,或者查看你的httpd.conf文件中LoadModules有没有这个mod_deflate模块开 启),直接复制粘贴以上的代码到httpd.conf文件的结尾,重新启动apache服务就可以实现gzip压缩了。

如果主机的apache不支持mod_deflate,主机的php却支持zlib,也就是说支持gzip压缩,具体方法见下面描述: 
对于静态网页(html,js,css),先设置URL Rewrite:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /blog  #your blog, change when needed. 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)(js|css|html|htm)$ /gzip.php?file=$1$2&type=$2 [L] 
</IfModule>

可以通过URL Rewrite的方式请求这个gzip.php文件 (该文件需要放在”/”目录),这样静态文件的gzip压缩就OK了。

还有,对于由php动态输出的网页,常见的就是wp输出的页面,可以通过一个插件(gzippy 
)实现, 直接到wp后台,在插件搜索里面输入“gzippy”然后安装即可。gzippy只有一句话:

<?php 
function gzippy() { 
    ob_start(‘ob_gzhandler’); 

if(!stristr($_SERVER['REQUEST_URI'], ‘tinymce’) && !ini_get(‘zlib.output_compression’)) { 
    add_action(‘init’, ‘gzippy’); 

?>

同时,对于主机的apache不支持mod_deflate,想让已经安装好的apache支持该模块,

那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c。

这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。

# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c 
# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c 
When install the header module the src directory is {apache-src}/modules/metadata/mod_headers.c 
So we need change the command as follows:{apache-bin}/apxs -i -a -c {apache-src}/modules/metadata/mod_headers.c

其中 {apache-bin} 为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。

很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示是:

Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate

编辑 /usr/local/apache2/bin/apr-config

文件修改其中的 LDFLAGS 值为 “-lz”,然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。 
为了省却不必要的麻烦,请尽量在编译安装apache时直接加上 –enable-deflate –enable-headers 参数。

其它方法分别有:

Apache 中使用 mod_deflate模块压缩网页
在ubuntu中启用mod_deflate很简单,"a2enmod deflate"就可以了
在httpd.conf中添加:
-----------------------------------------------------------------------------------------------
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css
----------------------------------------------------------------------------------------------
指 定对html、txt、xml、php、js、css等mime类型的文件进行压缩,application/x-httpd-php和 application/x-javascript是我加上的,不知道能否起作用。也可以按照文件扩展名或者浏览器类型进行压缩,还有更复杂的配置,可以 查询
官方的手册 <http://httpd.apache.org/docs/2.0/mod/mod_deflate.html>。

重启apache   /etc/init.d/apache2 restart

在chinaz看到页面压缩工具tool.chinaz.com/Gzips/,于是测试了一下自己的网站,发现居然没有开启gzip压缩,要知道如果在网速慢的情况,页面传输大小很影响用户打开响应快速体验的,你问有什么好处?

1.开GZIP有什么好处?
答:Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。

对于Apache而言,有两种情况
1)针对Apache2.0之前的版本,它原本是不支持的,不过可以通过添加第三方的module_gzip模块来启用
2)针对Apache2.0及之后的版本,Apache提供支持, 不过不叫gzip,而叫mod_deflate

那么该如何配置呢?我的系统是linux系统apache(httpd-2.2.15) web服务器,配置过程如下

Apache的gzip功能是使用mod_deflate.so模块,因此,我们先生成mod_deflate.so模块。首先从网上下载一个Apache安装程序(尽量与当前使用的Apache版本相同)然后解压,我们解压到了tmp目录下

#cd /tmp/httpd-2.2.15/modules/filters

#/usr/local/apache/bin/apxs -i -c -a mod_deflate.c     //生成mod_deflate.so模块

#cd /tmp/httpd-2.2.15/modules/metadata/

#/usr/local/apache/bin/apxs -i -c -a mod_headers.c     //生成mod_headers.so模块

修改httpd.conf文件

1、加入:

LoadModule headers_module modules/mod_headers.so

LoadModule deflate_module modules/mod_deflate.so

2、加入:

<VirtualHost ******>

ServerAdmin help@chinanorton.com

DocumentRoot “/usr/local/apache/htdocs/www/”

ServerName chinanorton.com

ServerAlias www.chinanorton.com

ErrorLog “logs/chinanorton.com-error_log”

CustomLog “logs/chinanorton.com-access_log” common

<Location />

SetOutputFilter DEFLATE

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 .(?:gif|jpe?g|png)$ no-gzip dont-vary

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

</Location>

</VirtualHost>

配置完毕,重新启动apache服务然后测试一下,发现ok了,压缩了66%还不错。

[root@localhost /]# /usr/local/apache/bin/apachectl restart

转载于:https://blog.51cto.com/vsfor/780224

Apache开启Gzip压缩,LAMP网页压缩相关推荐

  1. apache开启 gzip 压缩

    apache开启 gzip 压缩 这里我使用的是Apache2.4.17 打开apache安装目录,找到conf目录,用记事本打开httpd.conf 文件. ctrl+f 查找 去掉 #LoadMo ...

  2. linux apache gzip压缩,Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul

    Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul 开启模块 打开httpd.conf后,先将下面两行配置前面的#号去掉,这样apache就会启用这两个模块,其 ...

  3. apache 开启Gzip网页压缩

    2019独角兽企业重金招聘Python工程师标准>>> 网页gzip压缩是个什么概念呢?如果你还没接触到,讲文字全是废话,先来看两张图看着实在: 网页压缩前: 网页压缩后: 从图中就 ...

  4. linux系统如何开启网页是否压缩,Windows或Linux下Apache开启GZIP压缩 | kTWO-个人博客...

    在搭建web服务器的时候有时因为服务器带宽比较小,而网站内容较多,内容加载较慢,此时建议站长们开启Apache的GZIP压缩功能,注意:开启GZIP之后会增加服务器的压力,不过一般服务器还是可以承受的 ...

  5. apache开启gzip压缩

    ps:发现一个在线测评网页相应速度的网站: https://www.webpagetest.org/ 挺好用的 正文: 开启模块 打开httpd.conf后,先将下面两行配置前面的#号去掉,这样apa ...

  6. Apache开启GZIP压缩功能方法

    Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台,本文讲解了如何开启Apache平台上的Gzip压缩功能 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Li ...

  7. apache 开启 gzip 压缩服务

    2019独角兽企业重金招聘Python工程师标准>>> 1.打开 apache 的 "httpd.conf" 文件,找到以下这一行,将它前面的注释(#)去掉: L ...

  8. Apache开启Gzip压缩设置(转)

    第一步: 查看一下/etc/httpd/conf/httpd.conf中下面两个模块是否开启: LoadModule deflate_module modules/mod_deflate.so Loa ...

  9. windows apache 开启 GZIP

    从服务端优化来说,通过对服务端做压缩配置可以大大减小文本文件的体积,从而使加载文本的速度成倍的加快.目前比较通用的压缩方法是启用gzip压缩.它 会把浏览器请求的页面,以及页面中引用的静态资源以压缩包 ...

最新文章

  1. nginx,excel模板下载
  2. 抓localhost包 - rawcap
  3. java学习(131):hashtable
  4. 详解惯性导航论文 RINS-W: Robust Inertial Navigation System on Wheels
  5. android 16 登陆,那些年我们一起养过的电子鸡登陆Android平台
  6. 直流有刷减速电机结构及其工作原理
  7. 洛谷1005 【NOIP2007】矩阵取数游戏
  8. acc 蓝牙_蓝牙耳机acc什么意思
  9. excel线性拟合的斜率_origin 线性拟合后,怎么看斜率等参数
  10. 统计学和计算机类对比,统计学与计算机的关系
  11. Python基础: python3书籍推荐
  12. 虚拟机WIN7系统 如何设置网络
  13. 会计学原理与财务报表分析
  14. 《乾》: 相时而动的龙精神
  15. WIN7 shutdown 定时/倒计时 命令关机
  16. iOS性能测试怎么做?这款工具轻松稿定
  17. MyBatis 框架的思想及其第一次使用
  18. nginx过滤器模块
  19. dir under linux.Linux下的类dir程序.
  20. 激光雷达学习——二维激光雷达数据转PC2

热门文章

  1. matlab中龙贝格积分,龙贝格积分-matlab通用程序
  2. python中模块和函数_Python中函数和模块的体验与使用
  3. android mvvm livedata_再谈Android应用架构——Jetpack VS 生命周期
  4. java sync_Java同步简介 - 加大装益达 - OSCHINA - 中文开源技术交流社区
  5. html显示elasticsearch,ElasticSearch查询:高亮显示(10)
  6. SpringBoot------集成MyBatis报错
  7. 关于grep的引号使用问题
  8. delphi的dbgrid控件点击title排序
  9. XML在JAVA项目中的作用
  10. mysql --verbose --help