如何在 apache 中設定快取有效時間

2021-09-07 02:59:58 字數 1924 閱讀 7506

今天學習了下如何在 apache 中設定快取時間,記之以備忘。

在 http 報文頭中,與快取時間有關的兩個欄位是 expires 以及 cache-control 中的 max-age,expires 設定了乙個快取的過期時間,而 max-age 則設定了乙個快取有效時間(單位秒),通常情況下,兩者可以相互推得。(詳細參考 瀏覽器快取機制**)

還是用 wampserver 舉例。我們在 www 資料夾下新建個 index.html 頁面,在瀏覽器中開啟它,得到的 http 響應頭如下:

很顯然,我們並沒有看到 expires 或者 max-age 字樣。

比如我要把 max-age 設定成 1000,how?

開啟 httpd.conf 檔案(比如我的是在 f:\wamp\bin\apache\apache2.2.17\conf 下),找到這一行:

#loadmodule expires_module modules/mod_expires.so
去掉注釋(井號),然後再加上這麼兩行,再重啟下apache,就 ok 了:

expiresactive on

expiresbytype text/html a1000

我們看到 max-age 欄位也出現在了響應頭中,其實它是根據 expires 的設定自動填充的。

其他設定類似:

#啟用expires_module模組

loadmodule expires_module modules/mod_expires.so

# 啟用有效期控制

expiresactive on

# gif有效期為1個月

expiresbytype image/gif a2592000

# html文件的有效期是最後修改時刻後的一星期

expiresbytype text/html m604800

#以下的含義類似

expiresbytype text/css "now plus 2 months"

expiresbytype text/js "now plus 2 days"

expiresbytype image/jpeg "access plus 2 months"

expiresbytype image/bmp "access plus 2 months"

expiresbytype image/x-icon "access plus 2 months"

expiresbytype image/png "access plus 2 months"

我們也可以直接修改 max-age 字段。

同樣在 httpd.conf 檔案中,找到這麼一行:

#loadmodule headers_module modules/mod_headers.so
去掉注釋(井號),再加上這麼一句,重啟下 apache,就 ok 了:

header set cache-control "max-age=1000"
我們發現得到的響應頭里並沒有 expires 字段。

參考:

如何設定網頁靜態內容快取時間(apache)

apache 設定expires和max-age快取

webserver快取策略設定-apache

mybatis 008 與快取有關的設定

和快取有關的設定 1.cacheenabled value false 關閉二級快取,一級快取一直可用 2.getlist resulttype emp usecache true usecache false 二級快取不使用,一級快取照常使用 3.每個增刪改標籤都有flushcache true ...

Apache設定檔案快取時間

apache要設定檔案快取時間,要依靠乙個叫mod expires的模組,但是,我們的機器上,原本是沒有安裝這個模組的,幸運的是,apache安裝這個模組很簡單,首先找到源 比如我們的是2.2.22的版本 這樣就完成了mod expores模組的安裝,下面需要修改一下配置檔案 在裡面加入如下語句 啟...

如何在Apache中開啟虛擬主機

首先在apache的安裝目錄下的conf extra httpd vhosts.conf中新增如下 虛擬主機埠號 serveradmin 1778023831 qq.com 伺服器管理員郵箱 documentroot e phpworkj think public index.php 虛擬主機需要對...