將該行前面的”#”字號(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)緩存,選用以方式
2.1ExpiresDefault指令
按照Apache Server的介紹,ExpiresDefault的格式如下
ExpiresDefault "
其中,base取值如下
access #訪問之后,從當(dāng)前時(shí)間計(jì)算 now(等價(jià)于access)#訪問之后,從當(dāng)前時(shí)間計(jì)算 modification #修改之后,從服務(wù)器文件修改后計(jì)算plus是關(guān)鍵字,這個(gè)是系統(tǒng)指定的寫法
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 "
其中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í)間,單位為秒
此外,以上寫法可讀性好,但是如果要更方便一些,不妨試試如下寫法
1.關(guān)于mod_headers
Apache HTTP server官網(wǎng)關(guān)于mod_headers的描述是自定義一個(gè)Request Header和Response Header
2.mod_headers用法
加載模塊
簡(jiǎn)單例子
當(dāng)然,既然允許自定義,我們不妨可以通過添加Cache-Control來增強(qiáng)緩存
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)如下配置
注意: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。