日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache开启Gzip压缩,LAMP网页压缩

發布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache开启Gzip压缩,LAMP网页压缩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源自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网页压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。