使用Nginx實現頁面快取

2021-10-10 09:07:34 字數 2337 閱讀 5904

nginx的快取配置比較直觀簡單,具體有下面幾個指令需要知道:

格式:proxy_cache_path path [levels=numbers] keys_zone=zone_name:zone_size[inactive=time] [max_size=size]

說明:path -快取檔案存放的位置

levels -快取目錄結構,可以是1、2、3位數字作為目錄,最多是3位數字如:1,1:2

keys_zone -指定快取池名字及大小,每個定義快取路徑必須不同

inactive -設定每個快取區快取檔案的有效時長,超過該時長沒被訪問的快取被刪除

max_size -設定不活動的快取大小,不活動的快取超過該大小後被刪除

格式:proxy_cache cache_name

說明:指定快取區域的名字,乙個相同的區域可以在不同的地方使用。

格式:proxy_cache_valid reply_code [reply code…|any] time;

說明:reply_code -不同的應答**

time -為不同應答設定不同快取時長 預設為分鐘m

any - 代表任何**

最後,測試下配置是否正確:

$sudo nginx –t

然後,過載下nginx服務:

$sudo nginx –s reload

瀏覽器輸入: 然後檢視快取路徑下是否生成快取檔案,以及快取檔案格式是否正確,快取的結果:

/nginx/cache/webpages/f/63/681ad4c77694b65d61c9985553a2763f

上面的路徑規則已經按照我們預期設定生成,快取檔案格式是url的hash格式,下面可以檢視下這個檔案是否是我們使用的頁面,預設生成的快取目錄f 級別是不允許進入訪問的,為了演示我已經給予其777許可權了。

答案很簡單,我們使用谷歌瀏覽器瀏覽網頁,然後開啟開發者面板,檢視裡面的response headers響應頭中的資訊:

但從上面是看不出是否呼叫了快取檔案,因為需要額外配置下。首先,要了解下兩個快取變數:

$server_addr - 顯示的伺服器位址

$upstream_cache_status - 快取的狀態 可能的值為:miss(未命中)、hint(命中)、expired(請求傳遞到後台)、stale(後端得到過期的應答)、updating(正更新,使用舊的應答)等。

b、測試結果

如上圖中的resonpse headers部分,已經說明快取已經排程了。

nginx 頁面快取

proxy cache path 語法 proxy cache path path levels number keys zone zone name zone size inactive time max size size 預設值 none 使用字段 http 指令指定快取的路徑和一些其他引數,...

nginx 快取實現

目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...

Nginx之頁面快取二

頁面快取 1 快取指令 nginx的快取配置比較直觀簡單,具體有下面幾個指令需要知道 a proxy cache path 格式 proxy cache path path levels numbers keys zone zone name zone size inactive time max ...