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」設定檔裡.
接下來我們直接由範例中來學習吧.
範例一:
expiresactive on
expiresdefault 「access plus 10 days」
expiresbytype text/css 「access plus 1 second」
複製**
範例二:
expiresactive on
expiresdefault a86400
expiresbytype image/x-icon a2592000
expiresbytype text/css a2592000
expiresbytype image/gif a604800
expiresbytype image/png a604800
expiresbytype image/jpeg a604800
expiresbytype text/plain a604800
expiresbytype video/x-flv a604800
expiresbytype text/html a900
複製**
範例三:
expiresactive on
expiresdefault a0
# 1 年
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
大家在使用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秒
expiresdefault a300
#html,plain-text快取300秒
expiresbytype text/html a300
expiresbytype text/plain a300
#圖示檔案快取30天
expiresbytype image/x-icon a2592000
#image類快取乙個星期
expiresbytype image/jpeg a604800
expiresbytype image/gif a604800
expiresbytype image/png a604800
但有乙個問題是我們常用的apache
主機經常不怎麼支援mod_expires,沒有關係,我們用另乙個模組使用mod_headers。
同樣在.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安全 安裝啟用 ModSecurity
modsecurity apache modsecurity crs 2 安裝 1 啟用 mod unique id 模組 2 驗證伺服器安裝了最新版本libxml2函式庫 3 停止apache httpd 4 解壓 gzip d modsecurity apache 2.6.3.tag.gz ta...
Apache啟用URL重寫模組
原文 需要對apache conf httpd.conf檔案做如下修改 1 將 loadmodule rewrite module modules mod rewrite.so前的 號去掉 2 allowoverride none改為allowoverride all 修改完成後,重啟apache,...
關閉apache啟用的TRACE Method
trace和track是用來除錯web伺服器連線的http方式。支援該方式的伺服器存在跨站指令碼漏洞,通常在描述各種瀏覽器缺陷的時候,把 cross site tracing 簡稱為xst。攻擊者可以利用此漏洞欺騙合法使用者並得到他們的私人資訊。如何關閉apache的trace請求 虛擬主機使用者可...