首頁  >  文章  >  php教程  >  Apache啟用mod_expires模組

Apache啟用mod_expires模組

黄舟
黄舟原創
2016-12-21 11:36:131207瀏覽

mod_expires可以減少10%左右的重複請求,讓重複的使用者對指定的頁面請求結果都CACHE在本地,根本不向伺服器發出請求。

在使用之前,首先要確認一下”mod_expires”模組是否有啟用.如果是自己安裝Apache來架設網頁主機的話,這裡我們可以透過編輯Apache的”httpd.conf”設定檔來處理.搜尋一下,你可能會找到這麼一行:

#LoadModule expires_module modules/mod_expires.so

複製程式碼

將該行前面的”#”字號刪除,然後將”httpd.conf”啟動Apache來使這個更新生效.

當然如果我們是租用虛擬主機的話,”httpd.conf”設定檔我們一般用戶是接觸不到的,而在網站根目錄裡寫個”.htaccess”設定檔, 我想在運用上相對是較靈活的.”mod_expires”的設定資料除了可以寫在Apache的”httpd.conf”設定檔中,也可以寫在”.htaccess”設定檔裡.

我們知道在使用瀏覽器瀏覽網頁時,瀏覽器會把網頁資料緩存(Cache)下來儲存在本機端,用以加快下回瀏覽相同網頁時不必再重新由網站上下載,進而有加速的效果.使用mod_expires模組來加速網頁瀏覽,這裡所謂的”加速”,其實是利用”mod_expires”的功能,來設定網頁文件的過期時間,加長網頁文件被瀏覽器緩存(Cache)保存的時間.如此一來,只要網頁文件的過期時間未到,瀏覽器就會引用緩存的資料,而不用花時間再去下載網站上的資料.另一方面帶給站長的好處是,可以減少瀏覽者對網站的流量耗用(例如有些虛擬主機有限制網站可使用的流量).

接下來我們直接由範例中來學習吧.
範例一:

 

    ExpiresDefault “access plus 10 days”

    ExpiresByType text/css “access plus 1 second”

s.c>

ExpiresActive On

ExpiresDefault A86400

ExpiresByType image/x-icon A2592000

ExpiresByType application/x-javascript A2592000

ExpiresBpirespun 月2592005 月00

ExpiresByType image/png A604800

ExpiresByType image/jpeg A604800

ExpiresByType text/plain A604800

ExpiresByType application/x-shockwave-flash A604800

ExpiresByType video/x-flv A604800

ExpiresByType video/x-flv A604800

text/html A900

複製程式碼

範例三:

ExpiresActive On

ExpiresDefault A0

# 1 年

? wav)$”>

ExpiresDefault A9030400

# 1 星期

ExpiresDefault A604800

# 3 小時

ExpiresDefault A10800″

來包夾指令可以避免在mod_expires模組沒有啟用的情況下還要去執行.如果mod_expires模組確定已經啟用,那不寫也沒關係.

ExpiresActive On是指啟用mod_expires功能,相對的Off就是關閉功能.

ExpiresDefault指令是設定預設的過期時間.

從範例一和範例二中,各位可以看到關於時間設定的方式有分兩種,一個是文字敘述型,一個是代碼加上秒數型.

文字敘述型:

“access plus 10 days”意指瀏覽時起算10天.依照Apache官方說明文件,過期起算時間有三種,分別是access 、now 以及modification.其中access與now意義相同,而modification指的是網頁文件的」最後編輯時間」.所以如果要以檔桉的最後編輯時間起算,可以寫成這樣,”modification plus 10 days”.而時間的指定也很簡單,就是英文單字(years、months、weeks、days、hours、minutes、seconds).例如,可以寫成這樣,”access plus 1 month 15 days 2 hours”.

代碼加上秒數型: 

A86400意指瀏覽時起算1天.格式是代碼加上秒數.代碼有分兩種,”A”等同”access”,意指瀏覽時起算過期時間.使用代碼”A”比較適合應用在不常變動的網頁文件類型,例如圖片.另外一種代碼是”M”,其意義等同於”modification”,指的是網頁文件的”最後編輯時間”.使用代碼”M”比較適合應用在經常變動的網頁文件類型,例如HTML頁面這類經常更新內容的資料.秒數資料我在文後附上參考資料,可以供各位快速參考.

ExpiresByType指令是依照不同的網頁檔案型態來做期時間設定.
例如,ExpiresByType text/css A2592000,意指網站上的CSS風格檔3天后過期; ExpiresByType image/gif A604800,意指網站上的Gif圖檔在7天後過期.

範例三里,使用了來包夾各型態的網頁文件,而不是使用”ExpiresByType”指令,這也是一種用法.


利用Apache模組mod_expires和mod_headers實作檔快取,Add an Expires header|指定Expires

利用Apache模組mod_expires和modheadersers 實作檔案

利用Apache模組Expimire在使用YSlow的網站速度優化,常常會看到Add an Expires header這一分值很低,搜尋很多但還不知道怎麼該。下面就是答案。

Add an Expires header / 為檔案頭指定Expires
給靜態檔案加上過期標誌。讓瀏覽器或CDN伺服器快取起來,加速圖片和其他靜態檔案的載入。
Expires是瀏覽器Cache機制的一部分,瀏覽器的快取取決於Header中的四個值: Cache-Control, Expires, Last-Modified, ETag。
優化這個選項,要做的是對站內所有的檔案有針對性的設定Cache-Control和Expires.

我們要實現加上過期標誌可以利用apache模組mod_expires和mod_headers。

透過設定.htaccess文件, 可以輕易地依文件類別設定快取時間。對提高網站速度有一定幫助。

1. 利用mod_expires
在.htaccess中加入下列語句:

expiresactive on

#預設所有檔案快取時間設定為300秒
exp.秒

expiresbytype text/html a300

expiresbytype text/plain a300

#css, javascript快取一個小時

expiresbytype text/css a3600

expiresbytype application/x-javascript36000350303030 月icon a2592000

#image類別快取一個星期

expiresbytype image/jpeg a604800

expiresbytype image/gif a604800
expiresbytype image/pngh a604800一個星期lash a604800

expiresbytype video/ x-flv a604800

expiresbytype application/pdf a604800


但有一個問題是我們常用的Apache主機經常不怎麼支援mod_expires,沒有關係,我們用另一個模組使用modheaders。


同樣在.htaccess檔案中加入下列內容可實現快取:

# htm,html,txt類別的檔案快取一個小時

header set cache-control “max-age=3600″

# css, js, swf類別的檔案快取一個星期

header set cache-control “max-age=604800″
# jpg,gif,jpeg,png,ico,flv,pdf等檔案快取一年


header set cache-control “max-age=29030400″




「以下為樣本碼:



「以下為樣本碼:

Header set Cache-Control “max-age=604800, public”

Header set Cache-Control “max-age=18000, public, must-revalidate”



Header set Cache-Control 「max-age=3600, must-revalidate」


 以上就是Apache啟用mod_expires模組的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn