真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Apache啟用mod_expires&mod_headers實(shí)現(xiàn)靜態(tài)緩存

一.瀏覽器緩存原理

將該行前面的”#”字號(hào)刪除,然后將”httpd.conf”設(shè)定檔儲(chǔ)存后,重新啟動(dòng)Apache來使這個(gè)更新生效.

創(chuàng)新互聯(lián)公司專注于東風(fēng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供東風(fēng)營(yíng)銷型網(wǎng)站建設(shè),東風(fēng)網(wǎng)站制作、東風(fēng)網(wǎng)頁(yè)設(shè)計(jì)、東風(fēng)網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造東風(fēng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供東風(fēng)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

當(dāng)然如果我們是租用虛擬主機(jī)的話,”httpd.conf”設(shè)定檔我們一般用戶是接觸不到的,而在網(wǎng)站根目錄里寫個(gè)”.htaccess”設(shè)定檔, 我想在運(yùn)用上相對(duì)是較靈活的.”mod_expires”的設(shè)定資料除了可以寫在Apache的”httpd.conf”設(shè)定檔中,也可以寫 在”.htaccess”設(shè)定檔里.

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

二.mod_expires實(shí)現(xiàn)頁(yè)面緩存

LoadModule expires_module modules/mod_expires.so

mod_expires默認(rèn)緩存指令是ExpiresDefault,這個(gè)可以對(duì)所有文件進(jìn)行緩存,我們?nèi)绻朐O(shè)置默認(rèn)緩存,選用以方式

ExpiresActive On #訪問之后的一個(gè)月不再更新 ExpiresDefault "access plus 1 month" #訪問之后的4周不再更新 #ExpiresDefault "access plus 4 weeks" #訪問之后的30天不再更新 #ExpiresDefault "access plus 30 days"

2.1ExpiresDefault指令

按照Apache Server的介紹,ExpiresDefault的格式如下

ExpiresDefault " [plus] { }*"

其中,base取值如下

access #訪問之后,從當(dāng)前時(shí)間計(jì)算 now(等價(jià)于access)#訪問之后,從當(dāng)前時(shí)間計(jì)算 modification #修改之后,從服務(wù)器文件修改后計(jì)算

plus是關(guān)鍵字,這個(gè)是系統(tǒng)指定的寫法

表示計(jì)數(shù),單位為秒

表示日期單位,后者取值如下

years months weeks days hours minutes seconds

2.2ExpiresByType 指令

實(shí)際上,ExpiresDefault指令有非常嚴(yán)重的緩存問題,我們應(yīng)該知道,所有資源被緩存,導(dǎo)致網(wǎng)站會(huì)出現(xiàn)更新問題,我們更應(yīng)該少用ExpiresDefault而多用ExpiresByType,此外ExpiresDefault設(shè)置的時(shí)間要盡可能短。

ExpiresByType 指令規(guī)則如下

ExpiresByType type/encoding " [plus] { }*"

其中base,num,type和ExpiresDefault 類似。

當(dāng)然,在Apache Http Server中,指令還可以使用簡(jiǎn)寫方式

ExpiresDefault type/encoding [ufrist(base)][seconds] ExpiresByType type/encoding [ufrist(base)][seconds]

ufrist(base) 表示 base的首字母大寫, seconds表示過期時(shí)間,單位為秒

# Axxxx - Access seconds ,表示訪問之后經(jīng)過多少秒 # Mxxxx - Modifyed seconds ,表示修改之后經(jīng)過多少秒(推薦) ExpiresActive On ExpiresDefault A3600 #表示一小時(shí)后更新 ExpiresByType image/x-icon A86400 #表示1天后更新 #腳本文件和css樣式,我們最好使用 Modification ExpiresByType application/javascript M604800 #表示修改完之后,更新之后的1周以后更新 ExpiresByType text/css M2592000 #表示修改后如果沒有再次修改,那么經(jīng)過一個(gè)星期才允許更新緩存 ExpiresByType image/gif M604800 ExpiresByType image/png A604800 ExpiresByType image/jpeg M604800 ExpiresByType text/plain A604800 ExpiresByType application/x-shockwave-flash A604800 ExpiresByType video/x-flv A604800 ExpiresByType application/pdf A604800 ExpiresByType text/html A900

此外,以上寫法可讀性好,但是如果要更方便一些,不妨試試如下寫法

ExpiresActive On ExpiresDefault A3600 # 1 年 ExpiresDefault A9030400 # 1 星期 ExpiresDefault A604800 # 3 小時(shí) ExpiresDefault M10800

三.mod_headers緩存實(shí)現(xiàn)

1.關(guān)于mod_headers

Apache HTTP server官網(wǎng)關(guān)于mod_headers的描述是自定義一個(gè)Request Header和Response Header

2.mod_headers用法

加載模塊

簡(jiǎn)單例子

Header set MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."

當(dāng)然,既然允許自定義,我們不妨可以通過添加Cache-Control來增強(qiáng)緩存

# htm,html,txt類的文件緩存一個(gè)小時(shí) header set cache-control "max-age=3600" # css, js, swf類的文件緩存一個(gè)星期 header set cache-control "max-age=604800"

3.資源更新問題

不像mod_expires模塊具有Modification指令,那么資源更新了就會(huì)出現(xiàn)問題,對(duì)于這些問題如何處理?

Cache-Control加入HTTP/1.1是為了解決時(shí)間精度問題,當(dāng)然,他有好幾個(gè)搭檔,Etag,If-Range,Last-Modified,這幾個(gè)選項(xiàng)Apache服務(wù)器本身就實(shí)現(xiàn)了,當(dāng)然,我們還要注意,http.conf和.htaccess不能出現(xiàn)如下 Header unset Etag和Header unset Last-Modifie,否則更新緩存將成為大問題,導(dǎo)致網(wǎng)站更新UI失敗,數(shù)據(jù)提交出錯(cuò),斷點(diǎn)續(xù)傳失敗等問題。

解決上述問題,最好不要出現(xiàn)如下配置

Header unset Last-Modified Header unset Etag

注意:Etag在分布式跨服務(wù)器請(qǐng)求時(shí)會(huì)可能遇到校驗(yàn)失敗的問題,導(dǎo)致緩存實(shí)效,從而也會(huì)引發(fā)更新UI失敗,數(shù)據(jù)提交出錯(cuò),斷點(diǎn)續(xù)傳失敗等問題。因此,如果你是分布式系統(tǒng),建議還是Header unset Etag或者FileETag None。


新聞名稱:Apache啟用mod_expires&mod_headers實(shí)現(xiàn)靜態(tài)緩存
網(wǎng)站網(wǎng)址:http://weahome.cn/article/cjhphe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部