Apache开启Gzip压缩,提高网页访问速度
时间:2014-07-05 14:07 来源:linux.it.net.cn 作者:IT网
我Wordpress的主机为LAMP架构,即Linux+ Apache+ MySQL + PHP ,突然想到有个gzip压缩可以提高网页访问的速度,所以就想做一下测试,同时了解一下如何开启gzip压缩。通过网上查询得知,在Apache中开启gzip压缩方法为:
1.
在httpd.conf或者博客根目录的.htaccess文件中加入如下规则(Apache服务器需要支持mod_deflate)
AddOutputFilter DEFLATE html xml php js css
或者
2.
AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css
经过查看,主机的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:
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]
可以通过URL Rewrite的方式请求这个gzip.php文件 (该文件需要放在”/”目录),这样静态文件的gzip压缩就OK了。
还有,对于由php动态输出的网页,常见的就是wp输出的页面,可以通过一个插件(gzippy
)实现, 直接到wp后台,在插件搜索里面输入“gzippy”然后安装即可。gzippy只有一句话:
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 参数。
我的网站是完成了,马上来看看效果:通过网站查询,压缩的比率是64.53%,还不错啊!
(责任编辑:IT)
我Wordpress的主机为LAMP架构,即Linux+ Apache+ MySQL + PHP ,突然想到有个gzip压缩可以提高网页访问的速度,所以就想做一下测试,同时了解一下如何开启gzip压缩。通过网上查询得知,在Apache中开启gzip压缩方法为: 1.
在httpd.conf或者博客根目录的.htaccess文件中加入如下规则(Apache服务器需要支持mod_deflate)
或者 2.
经过查看,主机的Apache支持mod_deflate(使用httpd -M查看是否有mod_deflate模块,或者查看你的httpd.conf文件中LoadModules有没有这个mod_deflate模块开启),直接复制粘贴以上的代码到httpd.conf文件的结尾,重新启动apache服务就可以实现gzip压缩了。
如果主机的apache不支持mod_deflate,主机的php却支持zlib,也就是说支持gzip压缩,具体方法见下面描述:
可以通过URL Rewrite的方式请求这个gzip.php文件 (该文件需要放在”/”目录),这样静态文件的gzip压缩就OK了。
还有,对于由php动态输出的网页,常见的就是wp输出的页面,可以通过一个插件(gzippy
function 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} 为 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 即可。 我的网站是完成了,马上来看看效果:通过网站查询,压缩的比率是64.53%,还不错啊! (责任编辑:IT) |