將該行前面的”#”字號刪除,然后將”httpd.conf”設定檔儲存后,重新啟動Apache來使這個更新生效.
創(chuàng)新互聯(lián)公司專注于東風網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供東風營銷型網(wǎng)站建設,東風網(wǎng)站制作、東風網(wǎng)頁設計、東風網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務,打造東風網(wǎng)絡公司原創(chuàng)品牌,更為您提供東風網(wǎng)站排名全網(wǎng)營銷落地服務。當然如果我們是租用虛擬主機的話,”httpd.conf”設定檔我們一般用戶是接觸不到的,而在網(wǎng)站根目錄里寫個”.htaccess”設定檔, 我想在運用上相對是較靈活的.”mod_expires”的設定資料除了可以寫在Apache的”httpd.conf”設定檔中,也可以寫 在”.htaccess”設定檔里.
我們知道在使用瀏覽器瀏覽網(wǎng)頁時,瀏覽器會把網(wǎng)頁資料快取(Cache)下來儲存在本機端,用以加快下回瀏覽相同網(wǎng)頁時不必再重新由網(wǎng)站上下載,進 而有加速的效果.使用mod_expires模組來加速網(wǎng)頁瀏覽,這里所謂的”加速”,其實是利用”mod_expires”的功能,來設定網(wǎng)頁文件的過 期時間,加長網(wǎng)頁文件被瀏覽器快取(Cache)保存的時間.如此一來,只要網(wǎng)頁文件的過期時間未到,瀏覽器就會引用快取的資料,而不用花時間再去下載網(wǎng) 站上的資料.另一方面帶給站長的好處是,可以減少瀏覽者對網(wǎng)站的流量耗用(例如有些虛擬主機有限制網(wǎng)站可使用的流量).
二.mod_expires實現(xiàn)頁面緩存LoadModule expires_module modules/mod_expires.so
mod_expires默認緩存指令是ExpiresDefault,這個可以對所有文件進行緩存,我們?nèi)绻朐O置默認緩存,選用以方式
<IfModule expires_module> ExpiresActive On #訪問之后的一個月不再更新 ExpiresDefault "access plus 1 month" #訪問之后的4周不再更新 #ExpiresDefault "access plus 4 weeks" #訪問之后的30天不再更新 #ExpiresDefault "access plus 30 days" </IfModule>
2.1ExpiresDefault指令
按照Apache Server的介紹,ExpiresDefault的格式如下
ExpiresDefault "<base> [plus] {<num> <type>}*"
其中,base取值如下
access #訪問之后,從當前時間計算 now(等價于access)#訪問之后,從當前時間計算 modification #修改之后,從服務器文件修改后計算plus是關鍵字,這個是系統(tǒng)指定的寫法
<num>表示計數(shù),單位為秒
<type> 表示日期單位,后者取值如下
years months weeks days hours minutes seconds2.2ExpiresByType 指令
實際上,ExpiresDefault指令有非常嚴重的緩存問題,我們應該知道,所有資源被緩存,導致網(wǎng)站會出現(xiàn)更新問題,我們更應該少用ExpiresDefault而多用ExpiresByType,此外ExpiresDefault設置的時間要盡可能短。
ExpiresByType 指令規(guī)則如下
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
其中base,num,type和ExpiresDefault 類似。
當然,在Apache Http Server中,指令還可以使用簡寫方式
ExpiresDefault type/encoding [ufrist(base)][seconds] ExpiresByType type/encoding [ufrist(base)][seconds]
ufrist(base) 表示 base的首字母大寫, seconds表示過期時間,單位為秒
<IfModule expires_module> # Axxxx - Access seconds ,表示訪問之后經(jīng)過多少秒 # Mxxxx - Modifyed seconds ,表示修改之后經(jīng)過多少秒(推薦) ExpiresActive On ExpiresDefault A3600 #表示一小時后更新 ExpiresByType image/x-icon A86400 #表示1天后更新 #腳本文件和css樣式,我們最好使用 Modification ExpiresByType application/javascript M604800 #表示修改完之后,更新之后的1周以后更新 ExpiresByType text/css M2592000 #表示修改后如果沒有再次修改,那么經(jīng)過一個星期才允許更新緩存 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 </IfModule>
此外,以上寫法可讀性好,但是如果要更方便一些,不妨試試如下寫法
<IfModule expires_module> ExpiresActive On ExpiresDefault A3600 # 1 年 <FilesMatch ".(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> ExpiresDefault A9030400 </FilesMatch> # 1 星期 <FilesMatch ".(jpg|jpeg|png|gif|swf)$"> ExpiresDefault A604800 </FilesMatch> # 3 小時 <FilesMatch ".(txt|xml|js|css)$"> ExpiresDefault M10800 </FilesMatch> </IfModule>
三.mod_headers緩存實現(xiàn)1.關于mod_headers
Apache HTTP server官網(wǎng)關于mod_headers的描述是自定義一個Request Header和Response Header
2.mod_headers用法
加載模塊
簡單例子
<IfModuleheaders_module> Header set MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request." </IfModule>
當然,既然允許自定義,我們不妨可以通過添加Cache-Control來增強緩存
<IfModule headers_module> # htm,html,txt類的文件緩存一個小時 <filesmatch ".(html|htm|txt)$"> header set cache-control "max-age=3600" </filesmatch> # css, js, swf類的文件緩存一個星期 <filesmatch ".(css|js|swf)$"> header set cache-control "max-age=604800" </filesmatch> </IfModule>
3.資源更新問題
不像mod_expires模塊具有Modification指令,那么資源更新了就會出現(xiàn)問題,對于這些問題如何處理?
Cache-Control加入HTTP/1.1是為了解決時間精度問題,當然,他有好幾個搭檔,Etag,If-Range,Last-Modified,這幾個選項Apache服務器本身就實現(xiàn)了,當然,我們還要注意,http.conf和.htaccess不能出現(xiàn)如下 Header unset Etag和Header unset Last-Modifie,否則更新緩存將成為大問題,導致網(wǎng)站更新UI失敗,數(shù)據(jù)提交出錯,斷點續(xù)傳失敗等問題。
解決上述問題,最好不要出現(xiàn)如下配置
<IfModule mod_headers> Header unset Last-Modified Header unset Etag </IfModule>
注意:Etag在分布式跨服務器請求時會可能遇到校驗失敗的問題,導致緩存實效,從而也會引發(fā)更新UI失敗,數(shù)據(jù)提交出錯,斷點續(xù)傳失敗等問題。因此,如果你是分布式系統(tǒng),建議還是Header unset Etag或者FileETag None。
本文名稱:Apache啟用mod_expires&mod_headers實現(xiàn)靜態(tài)緩存
網(wǎng)站地址:http://www.muchs.cn/article44/cjhphe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站營銷、網(wǎng)站收錄、品牌網(wǎng)站制作、動態(tài)網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)