綠(lǜ)色(sè)資源網:您身邊最放心的安全(quán)下(xià)載站! 最(zuì)新軟件(jiàn)|熱門排行|軟(ruǎn)件分類|軟件專題|廠商(shāng)大全

綠色資源網

技術教程
您的位置:首頁服務器類Web服務器 → apache2.0x 開啟gzip壓縮和http緩存的配置方法

apache2.0x 開(kāi)啟gzip壓縮和(hé)http緩存(cún)的配置(zhì)方法(fǎ)

我要(yào)評(píng)論 2011/04/14 10:37:03 來(lái)源:綠色資源網 編輯:chithemodel.com [ ] 評論:0 點擊:206次

先談gzip的配(pèi)置方法(fǎ),在(zài)apache2.0以上(包(bāo)括(kuò)apache2.0)的(de)版中gzip壓縮(suō)使用的是mod_deflate模塊,下麵是具體配(pèi)置步驟:

第1步

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

打(dǎ)開httpd.conf後,先將上麵(miàn)兩行配置前麵的(de)#號去(qù)掉,這樣apache就(jiù)會啟用這兩個模塊,其中mod_deflate是壓縮模塊,就是對要傳輸(shū)到客戶端(duān)的代碼進行(háng)gzip壓縮;mod_headers模塊的(de)作用是告訴瀏覽器頁麵使用了(le)gzip壓縮,如果不(bú)開啟mod_headers那麽瀏覽器就(jiù)會對gzip壓縮過(guò)的頁(yè)麵進(jìn)行下載,而無法正常顯示。

第2步

在httpd.conf中加入以下代碼,可以(yǐ)加到任何空白地方,不了(le)解apache的朋(péng)友,如果(guǒ)擔心加錯地方(fāng),就放到http.conf文件的最後(hòu)一行(háng)。

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE    #必須的,就像一個開關一樣,告訴apache對傳(chuán)輸到瀏覽器的內容進(jìn)行壓(yā)縮

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #設置不對(duì)後綴gif,jpg,jpeg,png的圖片(piàn)文件(jiàn)進行壓縮
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是設(shè)置不對exe,tgz,gz。。。的(de)文件進行壓縮
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

AddOutputFilterByType DEFLATE text/* #設置對文件是文本(běn)的(de)內(nèi)容進(jìn)行壓縮,例如text/html  text/css  text/plain等
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #這段代碼你隻需要了(le)解application/javascript application/x-javascript這段就可(kě)以了,這段的意思是對javascript文件進行壓縮
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #這段是告(gào)訴apache對php類型的文件(jiàn)進行壓(yā)縮

BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有(yǒu)一(yī)些問題,所以(yǐ)隻壓縮文件類(lèi)型是text/html的
    BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多(duō)的(de)問題,所(suǒ)以不開啟壓縮
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE瀏(liú)覽器(qì)會偽裝成 Netscape ,但(dàn)是事實(shí)上它(tā)沒有(yǒu)問題

Header append Vary User-Agent env=!dont-vary #確保(bǎo)代理不會發送錯誤的內容(róng)
</IfModule>

本配置到這裏apache中(zhōng)的gzip壓縮就(jiù)配置(zhì)完成,重啟apache後,新的配置就會生效,當然這裏我們還不會重啟(qǐ)apache因為下一步要(yào)配(pèi)置http緩存,也就(jiù)是mod_expires模塊。

第1步

LoadModule expires_module modules/mod_expires.so

在httpd.conf中(zhōng),找到上麵(miàn)的代碼(mǎ),然後將前麵的#去掉

第2步

在httpd.conf中(zhōng)加入以下(xià)代碼,可以加到(dào)任何空白地方,不(bú)了解apache的朋(péng)友(yǒu),如果擔(dān)心(xīn)加錯地方,就放到http.conf文件的最後一行。

<IfModule mod_expires.c>
    ExpiresActive On #激活(huó)http緩存,也就是(shì)個開關,必須有(yǒu)的一段代(dài)碼
    ExpiresDefault A604800 #默認緩存時間為604800秒,也(yě)就是7天,A表示以(yǐ)客戶(hù)端時間為準
    ExpiresByType text/css A3600 #對css文件緩存3600秒,也就(jiù)是1小時(shí),A表示以客戶端時(shí)間為準
    ExpiresByType text/html A3600 #對html文件緩存3600秒,也就是1小時(shí),A表示以客戶端(duān)時(shí)間為準(zhǔn)
    ExpiresByType application/x-javascript A3600 #對javascript文件緩存3600秒,也就是1小時,A表示以客(kè)戶端時間為準
    ExpiresByType image/gif "access plus 2 month" #對gif圖片緩存2個月,以客戶端時間(jiān)為準
    ExpiresByType image/jpeg "access plus 2 month" #對jpeg和jpg圖片緩存2個月,以客戶端時間為準
    ExpiresByType image/png "access plus 2 month" #對png圖片緩存(cún)2個月,以客戶端(duān)時間為(wéi)準
    ExpiresByType image/x-icon "access plus 2 month" #對瀏覽器小圖標緩存2個月,以客(kè)戶(hù)端時間為(wéi)準
    ExpiresByType application/x-shockwave-flash A2592000 #對flash文件緩存2592000秒,也就是1個月,A表示以客戶端時間(jiān)為準

#特別注意也可以使用 ExpiresByType text/css M3600  這裏的M表(biǎo)示(shì)以文(wén)件最後修(xiū)改時間為準緩存1小時,例(lì)如有些時候(hòu),我們的HTML是大(dà)批量定時(shí)更(gèng)新的,這個(gè)時候(hòu)就可以(yǐ)用(yòng)到(dào)M

Header unset Pragma #刪除掉http頭信息中(zhōng)的Pragma,不(bú)懂的可以google一下(xià)Pragma,他也是控製瀏覽器緩存的(de),不過是用於(yú)http1.0標準
  FileETag None
  Header unset ETag #這段代(dài)碼和上麵一段的作用是不(bú)使用http1.1標準中的ETag屬性
  <FilesMatch "\.(js|css|ico|pdf|flv|jpg|jpeg|png|gif|mp3|mp4|swf)$"> #針對js|css|ico等後綴的(de)文件進行(háng)單獨設置
  #Header set Expires "Thu, 15 Apr 2013 20:00:00 GMT"
  Header unset Last-Modified #不使用http頭信息中的Last-Modified屬(shǔ)性,Last-Modified是指(zhǐ)文件最後修改時間(jiān)
  Header append Cache-Control "public" #設置(zhì)為可(kě)被任何緩存區緩存
  </FilesMatch>
</IfModule>

上麵的(de)配置是我自己的服務器上正在使用的配置方法,在這裏與大家分享一下,代碼不會有錯,最後(hòu)不要忘記重啟(qǐ)apache服(fú)務器哦!

如果(guǒ)有apache高人(rén)有更好的配(pèi)置,請(qǐng)指教一(yī)下!

如果用(yòng)的虛擬主(zhǔ)機,而虛擬主機支持.htaccess,則可以將上麵的代碼(mǎ)放到.htaccess文(wén)件中(zhōng)。

關鍵詞(cí):apache,gzip壓縮,http緩(huǎn)存(cún)

閱(yuè)讀(dú)本(běn)文後您有什(shí)麽感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視(shì)