欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

apache啟用gzip壓縮的實(shí)現(xiàn)方法

 更新時(shí)間:2013年06月12日 20:01:43   作者:  
對(duì)于部署在Linux服務(wù)器上的PHP程序,在服務(wù)器支持的情況下,我們建議你開啟使用Gzip Web壓縮,以前腳本之家介紹了iis中的開啟方法,這篇文章主要介紹了linux中apache的開啟方法

一、gzip介紹

Gzip是一種流行的文件壓縮算法,現(xiàn)在的應(yīng)用十分廣泛,尤其是在Linux平臺(tái)。當(dāng)應(yīng)用Gzip壓縮到一個(gè)純文本文件時(shí),效果是非常明顯的,大約可以減少70%以上的文件大小。這取決于文件中的內(nèi)容。

利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來對(duì)Apache服務(wù)器發(fā)布的網(wǎng)頁內(nèi)容進(jìn)行壓縮后再傳輸?shù)娇蛻舳藶g覽器。這樣經(jīng)過壓縮后實(shí)際上降低了網(wǎng)絡(luò)傳輸?shù)淖止?jié)數(shù),最明顯的好處就是可以加快網(wǎng)頁加載的速度。

網(wǎng)頁加載速度加快的好處不言而喻,除了節(jié)省流量,改善用戶的瀏覽體驗(yàn)外,另一個(gè)潛在的好處是Gzip與搜索引擎的抓取工具有著更好的關(guān)系。例如 Google就可以通過直接讀取gzip文件來比普通手工抓取更快地檢索網(wǎng)頁。在Google網(wǎng)站管理員工具(Google Webmaster Tools)中你可以看到,sitemap.xml.gz 是直接作為Sitemap被提交的。

而這些好處并不僅僅限于靜態(tài)內(nèi)容,PHP動(dòng)態(tài)頁面和其他動(dòng)態(tài)生成的內(nèi)容均可以通過使用Apache壓縮模塊壓縮,加上其他的性能調(diào)整機(jī)制和相應(yīng)的服務(wù)器端 緩存規(guī)則,這可以大大提高網(wǎng)站的性能。因此,對(duì)于部署在Linux服務(wù)器上的PHP程序,在服務(wù)器支持的情況下,我們建議你開啟使用Gzip Web壓縮。

二、Web服務(wù)器處理HTTP壓縮的過程如下:

1. Web服務(wù)器接收到瀏覽器的HTTP請(qǐng)求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);

2. 如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請(qǐng)求文件的后綴名;

3. 如果請(qǐng)求文件是HTML、CSS等靜態(tài)文件,Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請(qǐng)求文件的最新壓縮文件;

4. 如果請(qǐng)求文件的壓縮文件不存在,Web服務(wù)器向?yàn)g覽器返回未壓縮的請(qǐng)求文件,并在壓縮緩沖目錄中存放請(qǐng)求文件的壓縮文件;

5. 如果請(qǐng)求文件的最新壓縮文件已經(jīng)存在,則直接返回請(qǐng)求文件的壓縮文件;

6. 如果請(qǐng)求文件是動(dòng)態(tài)文件,Web服務(wù)器動(dòng)態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。

下面是兩個(gè)演示圖:

未使用Gzip:

開啟使用Gzip后:

三、實(shí)施

      Apache上利用Gzip壓縮算法進(jìn)行壓縮的模塊有兩種:mod_gzip 和mod_deflate。 要使用Gzip Web壓縮,請(qǐng)首先確定你的服務(wù)器開啟了對(duì)這兩個(gè)組件之一的支持。在Linux服務(wù)器上,現(xiàn)在已經(jīng)有越來越多的空間商開放了對(duì)它們的支持,有的甚至是同時(shí) 支持這兩個(gè)模塊的。例如目前Godaddy、Bluehost及DreamHosts等空間商的服務(wù)器都已同時(shí)支持mod_gzip 和mod_deflate。

      雖然使用Gzip同時(shí)也需要客戶端瀏覽器的支持,不過不用擔(dān)心,目前大部分瀏覽器都已經(jīng)支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。

     通過查看HTTP頭,我們可以快速判斷使用的客戶端瀏覽器是否支持接受gzip壓縮。若發(fā)送的HTTP頭中出現(xiàn)以下信息,則表明你的瀏覽器支持接受相應(yīng)的gzip壓縮:

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

Accept-Encoding: gzip,deflate 同時(shí)支持mod_gzip 和mod_deflate  在apache2.0以上(包括apache2.0)的版中g(shù)zip壓縮使用的是mod_deflate模塊,下面是具體配置步驟 如下:  

   1、修改Apache的http.conf文件,去除mod_deflate.so前面的注釋

復(fù)制代碼 代碼如下:

LoadModule deflate_module modules/mod_deflate.so

2、在根目錄中新建.htaccess文件,定制壓縮規(guī)則

復(fù)制代碼 代碼如下:

#GZIP壓縮模塊配置
<ifmodule mod_deflate.c>
#啟用對(duì)特定MIME類型內(nèi)容的壓縮
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #設(shè)置不對(duì)壓縮的文件
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript #設(shè)置對(duì)壓縮的文件
</ifmodule>

3、對(duì)指定的文件配置緩存的生存時(shí)間,去除mod_headers.so模塊前面的注釋

復(fù)制代碼 代碼如下:

LoadModule headers_module modules/mod_headers.so

4、在根目錄中新建.htaccess文件,定制壓縮規(guī)則

復(fù)制代碼 代碼如下:

#文件緩存時(shí)間配置
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

里面的文件MIME類型可以根據(jù)自己情況添加,至于PDF 、圖片、音樂文檔之類的這些本身都已經(jīng)高度壓縮格式,重復(fù)壓縮的作用不大,反而可能會(huì)因?yàn)樵黾覥PU的處理時(shí)間及瀏覽器的渲染問題而降低性能。所以就沒必要再通過Gzip壓縮。通過以上設(shè)置后再查看返回的HTTP頭,出現(xiàn)以下信息則表明返回的數(shù)據(jù)已經(jīng)過壓縮。即網(wǎng)站程序所配置的Gzip壓縮已生效。

Content-Encoding: gzip注:不管使用mod_gzip 還是mod_deflate,此處返回的信息都一樣。因?yàn)樗鼈兌际菍?shí)現(xiàn)的gzip壓縮方式。

除此之外,還可以通過一些在線檢查工具h(yuǎn)ttp://tool.chinaz.com/Gzips/來檢測你的網(wǎng)站內(nèi)容是否已經(jīng)過Gzip壓縮。

四、mod_gzip 和mod_deflate的主要區(qū)別是什么?使用哪個(gè)更好呢?

      首先一個(gè)區(qū)別是安裝它們的Apache Web服務(wù)器版本的差異。Apache 1.x系列沒有內(nèi)建網(wǎng)頁壓縮技術(shù),所以才去用額外的第三方mod_gzip 模塊來執(zhí)行壓縮。而Apache 2.x官方在開發(fā)的時(shí)候,就把網(wǎng)頁壓縮考慮進(jìn)去,內(nèi)建了mod_deflate 這個(gè)模塊,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮算法,它們的運(yùn)作原理是類似的。

       第二個(gè)區(qū)別是壓縮質(zhì)量。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。一般默認(rèn)情況下,mod_gzip 會(huì)比mod_deflate 多出4%~6%的壓縮量。

       那么,為什么使用mod_deflate?第三個(gè)區(qū)別是對(duì)服務(wù)器資源的占用。 一般來說mod_gzip 對(duì)服務(wù)器CPU的占用要高一些。mod_deflate 是專門為確保服務(wù)器的性能而使用的一個(gè)壓縮模塊,mod_deflate 需要較少的資源來壓縮文件。這意味著在高流量的服務(wù)器,使用mod_deflate 可能會(huì)比mod_gzip 加載速度更快。

      不太明白?簡而言之,如果你的網(wǎng)站,每天不到1000獨(dú)立訪客,想要加快網(wǎng)頁的加載速度,就使用mod_gzip。雖然會(huì)額外耗費(fèi)一些服務(wù)器資源, 但也是值得的。如果你的網(wǎng)站每天超過1000獨(dú)立訪客,并且使用的是共享的虛擬主機(jī),所分配系統(tǒng)資源有限的話,使用mod_deflate 將會(huì)是更好的選擇。

     另外,從Apache 2.0.45開始,mod_deflate 可使用DeflateCompressionLevel 指令來設(shè)置壓縮級(jí)別。該指令的值可為1(壓縮速度最快,最低的壓縮質(zhì)量)至9(最慢的壓縮速度,壓縮率最高)之間的整數(shù),其默認(rèn)值為6(壓縮速度和壓縮質(zhì) 量較為平衡的值)。這個(gè)簡單的變化更是使得mod_deflate 可以輕松媲美m(xù)od_gzip 的壓縮。

P.S. 對(duì)于沒有啟用以上兩種Gzip模塊的虛擬空間,還可以退而求其次使用php的zlib函數(shù)庫(同樣需要查看服務(wù)器是否支持)來壓縮文件,只是這種方法使用起來比較麻煩,而且一般會(huì)比較耗費(fèi)服務(wù)器資源,請(qǐng)根據(jù)情況慎重使用。詳細(xì)  php啟用zlib壓縮文件

相關(guān)文章

  • Apache運(yùn)行模式之standalone和inetd模式介紹

    Apache運(yùn)行模式之standalone和inetd模式介紹

    這篇文章主要介紹了Apache運(yùn)行模式之standalone和inetd模式介紹,本文講解了ServerType這個(gè)配置參數(shù),ServerType這個(gè)配置選項(xiàng)指定如何運(yùn)行Apache,需要的朋友可以參考下
    2015-06-06
  • Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹

    Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹

    這篇文章主要介紹了Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Centos6.5全自動(dòng)安裝 vsftpd+dhcp+nfs+tftp

    Centos6.5全自動(dòng)安裝 vsftpd+dhcp+nfs+tftp

    本文主要記述了在Centos6.5中,如何配置無人值守安裝vsftpd+dhcp+nfs+tftp,非常實(shí)用,希望對(duì)大家能有所幫助。
    2014-09-09
  • 詳解CentOS的SVN服務(wù)器搭建與自動(dòng)部署全過程

    詳解CentOS的SVN服務(wù)器搭建與自動(dòng)部署全過程

    最近因?yàn)楣ぷ餍枰艘粋€(gè)晚上時(shí)間折騰svn,網(wǎng)上的教程太亂太雜,還有很多是錯(cuò)誤的,終于搞定了,所以想著把過程記錄下來。這篇文章主要介紹了CentOS的SVN服務(wù)器搭建與自動(dòng)部署全過程,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • linux下安裝Hadoop的詳細(xì)教程

    linux下安裝Hadoop的詳細(xì)教程

    這篇文章主要介紹了linux下安裝Hadoop的詳細(xì)教程,Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ),需要的朋友可以參考下
    2023-03-03
  • Ubuntu18.04下解決Qt出現(xiàn)qt.qpa.plugin:Could not load the Qt platform plugin “xcb“問題

    Ubuntu18.04下解決Qt出現(xiàn)qt.qpa.plugin:Could not load the Qt platfo

    這篇文章主要介紹了Ubuntu18.04下解決Qt出現(xiàn)qt.qpa.plugin:Could not load the Qt platform plugin “xcb“問題,本文給大家分享解決方案,需要的朋友可以參考下
    2020-08-08
  • linux最快的文本搜索神器ripgrep(grep的最好代替者)

    linux最快的文本搜索神器ripgrep(grep的最好代替者)

    這篇文章主要介紹了linux最快的文本搜索神器ripgrep(grep的最好代替者),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • CentOS 6/7環(huán)境下通過yum安裝php7的方法

    CentOS 6/7環(huán)境下通過yum安裝php7的方法

    這篇文章主要介紹了CentOS 6/7環(huán)境下通過yum安裝php7的方法,簡單分析了CentOS 6/7服務(wù)器環(huán)境下使用yum安裝php7的相關(guān)命令與操作步驟,需要的朋友可以參考下
    2018-03-03
  • Linux下connect超時(shí)處理(總結(jié))

    Linux下connect超時(shí)處理(總結(jié))

    這篇文章主要介紹了Linux下connect超時(shí)處理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 每天一個(gè)linux命令(61):wget命令詳解

    每天一個(gè)linux命令(61):wget命令詳解

    本篇文章主要介紹了wget命令,Linux系統(tǒng)中的wget是一個(gè)下載文件的工具,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-11-11

最新評(píng)論