一、Internet 信息服務 (IIS)的內容過期設置
如果IIS 網站中有時間敏感信息,可以配置設置來保證過期信息不被代理服務器或 Web 瀏覽器緩存??梢耘渲镁W站內容,使之在任
何的時間自動過期。當啟用內容過期時,Web 瀏覽器將比較當前日期和截止日期,以便決定是顯示緩存頁還是從服務器請求更新的頁
。Microsoft ASP.NET 這樣的服務器端技術可用于動態更改提供的內容。通常,時間敏感信息只限于單個文件、目錄或網站;不過,您也可以為某臺計算機上的所有網站設置內容過期。
必須是本地計算機上 Administrators 組的成員或者必須被委派了相應的權限,才能執行下列步驟。作為安全性的最佳操作,請使用不屬于 Administrators 組的帳戶登錄計算機,然后使用運行方式命令以管理員身份運行 IIS管理器
在命令提示符下,鍵入 runas /user:administrative_accountname "mmc %systemroot%system32inetsrviis.msc"。
設置網站內容的過期時間
1. 在 IIS 管理器中,展開本地計算機;右鍵單擊要設置內容過期的網站、虛擬目錄或文件,然后單擊“屬性”。
2. 單擊“HTTP 頭”選項卡。
3. 選中“啟用內容過期”復選框。
4. 單擊“立即過期”、“此時間段后過期”或“過期時間”,然后在對應的框中輸入所需的過期信息。
5. 單擊“確定”。
二、APACHE服務的內容過期設置
Apache配置摘錄及解釋
i. 過期相關設置
LoadModule headers_module modules/mod_headers.so
#Load 修改header的模塊。
LoadModule expires_module modules/mod_expires.so
#Load 設定過期header的模塊。
Header append Via: CCN-BJ-4-502
#增加一個Via header,值配置成設備的hostname。
KeepAliveTimeout 60
#設置連接的保持時間為60秒。
ExpiresActive On
#啟用過期header功能。
ExpiresDefault A604800
#缺省過期時間為“訪問后的604800秒”
<Directory /data/download>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ExpiresByType text/html A300
#text/html類型文件的過期設置為“訪問后的300秒”
ExpiresByType text/css A259200
#text/css類型文件的過期設置為“訪問后的259200秒”
ExpiresByType application/x-javascript A300
# application/x-javascript類型文件的過期設置為“訪問后的300秒”
ExpiresByType image/gif A2592000
#image/gif類型文件的過期設置為“訪問后的2592000秒”
ExpiresByType application/x-shockwave-flash A2592000
# application/x-shockwave-flash類型文件的過期設置為“訪問后的2592000秒”
</Directory>
上述配置文件中load的兩個模塊:mod_headers.so 和mod_expires.so 可以讓Apache具有對header的一些定制功能。
ExpiresByType: 表示按照文件類型-MIME-TYPE設定過期策略;
A300: 表示在Access后300秒后過期;
ExpiresByType text/css A2592000: 表示Mime type是text/css的文件,在Access后2592000秒過期。
ExpiresDefault A604800: 表示除了單獨制定的文件類型等過期策略外的其他內容,按照這個缺省的策略設定:訪問后604800秒過期。
上面的方法可以實現根據web發布的不同文件類型,針對不同的發布目錄進行過期策略設置。在按照如上方法設置后,Apache會自動的產生兩個相關的http header,舉例如下:
HTTP/1.1 200 OK
Date: Tue, 27 Mar 2007 17:44:21 GMT
Server: Apache/2.0.54 (Unix)
Last-Modified: Thu, 25 Jan 2007 07:45:45 GMT
ETag: “72df3a-93-99499c40”
Accept-Ranges: bytes
Content-Length: 147
Cache-Control: max-age=2592000
Expires: Thu, 26 Apr 2007 17:44:21 GMT
Via: CCN-BJ-4-575
Keep-Alive: timeout=60, max=100
Connection: Keep-Alive
Content-Type: image/gif
Length: 147 [image/gif]
其中:Date + Max-age = Expires. Max-age是個時間長度,對應web server上面設置的過期時間;Expires是根據max-age算出來的過期時間點,兩者是一致的,不同cache在判斷內容是否過期時會嚴格比較 系統時間和上述過期時間,或者比較age(在cache中存住的時間長度)和max-age的值。
三、lighttpd
lighttpd默認是沒有開啟expire模塊的,需要我們在使用是手工開啟這個模塊支持。把mod_expire前面的“#”號去掉。
# vi /usr/local/lighttpd/etc/lighttpd.conf
"mod_expire",
設定過期時間
* 設定指定url的過期時間:
expire.url = (
"/images/" => "access 3 hours",
"/admin/" => "access 3 hours",
"/area/" => "access 3 hours",
"/calendar/" => "access 3 hours",
"/common/" => "access 3 hours",
"/front/" => "access 3 hours",
"/inc/" => "access 3 hours",
"/jeditor/" => "access 3 hours",
"/js/" => "access 3 hours",
"/script/" => "access 3 hours",
"/theme/" => "access 3 hours",
"/upload/" => "access 3 hours",
"/view/" => "access 3 hours",
"/help/" => "access 3 hours",
"/htm/" => "access 5 minutes"
)
設置Etag
在配置文件中增加,etag.use-inode="disable"(i節點不參與etag的運算),保證多臺服務器生成的Etag值一致。
新聞熱點
疑難解答
圖片精選