免責聲明:本文檔可能包含第三方產品信息,該信息僅供參考。阿里云對第三方產品的性能、可靠性以及操作可能帶來的潛在影響,不做任何暗示或其他形式的承諾。
概述
本文主要介紹如何通過Apache的mod_expires和mod_headers模塊設置Apache緩存策略。
詳細信息
mod_expires模塊設置
Apache可以通過配置文件的mod_expires模塊控制HTTP協議的Expires和Cache-Control頭部信息。mod_expires模塊的主要作用是自動生成頁面頭部信息中的Expires標簽和Cache-Control標簽,從而降低客戶端的訪問頻率和次數,達到減少不必要流量和增加訪問速度的目的。
mod_expires模塊的介紹
mod_expires是Apache眾多模塊中配置比較簡單的模塊,一共有以下三條指令。
- ExpiresActive指令:打開或關閉產生Expires和Cache-Control標簽的功能。
- ExpiresByType指令:指定MIME類型文檔的過期時間,例如text/html文檔。
- ExpiresDefault指令:所有文檔的默認過期時間。
過期時間的寫法如下。
- access plus 1 month
- access plus 4 weeks
- now plus 30 days
- modification plus 5 hours 3 minutes
- A2592000
- M604800
提示:
- access plus 1 month、access plus 4 weeks、now plus 30 days和A2592000寫法的意義相同,指過期時間是從訪問時開始計算。
- modification plus 5 hours 3 minutes和M604800意義相同,指過期時間是以被訪問文件的最后修改時間開始計算。
- M604800只對靜態文件起作用,腳本生成的動態頁面不起作用。
配置示例
- mod_expires模塊的配置如下所示。
- ExpiresActive On:開啟mod_expires功能。
- ExpiresDefault "access plus 6 months":默認的過期時間是6個月。
- ExpiresByType image/* "access plus 10 years":圖片的文件類型緩存時間為10年。
- ExpiresByType text/* "access plus 10 years":文本類型緩存時間為10年。
- ExpiresByType application/* "access plus 30 minutes":application文件類型緩存30分鐘。
- 訪問image/jpeg類型的緩存時間為315360000秒,即10年,如下所示。
- 如果將image/jpeg類型設置為不緩存,即將max-age設置為0秒,配置如下所示。
#ExpiresByType image/* "access plus 10 years"
ExpiresByType image/* A0 - 再次訪問時,發現緩存時間為0秒。
mod_headers模塊設置
mod_headers模塊配置示例如下所示,詳細介紹請參考Apache官方網站。
# YEAR
Header set Cache-Control "max-age=2592000″
# WEEK
Header set Cache-Control "max-age=604800″
# NEVER CACHE
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
適用于
- CDN
文檔內容是否對您有幫助?