Nginx之頁面快取二

2021-09-02 21:32:53 字數 1960 閱讀 3753

頁面快取

1、快取指令

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

a、proxy_cache_path

格式: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 -設定不活動的快取大小,不活動的快取超過該大小後被刪除

b、proxy_cache

格式:proxy_cache cache_name

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

c、proxy_cache_valid

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

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

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

any - 代表任何**

2、頁面快取設定

a、新建快取頁面

$ mkdir –pv /nginx/cache/webpages

b、配置nginx.conf

proxy_cache_path /nginx/cache/webpages levels=1:2 keys_zone=webpages:30mmax_size=2g;

server

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

$sudo nginx –t

然後,過載下nginx服務:

$sudo nginx –s reload

c、測試結果

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

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

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

d、如何知道是否訪問快取?

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

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

$server_addr - 顯示的伺服器位址

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

a、配置檔案nginx.conf

proxy_cache_path /nginx/cache/webpages levels=1:2 keys_zone=webpages:30mmax_size=2g;

server

}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的快取配置比較直觀簡單,具體有下面幾個指令需要知道 格式 proxy cache path path levels numbers keys zone zone name zone size inactive time max size size 說明 path 快取檔案存放的位置 lev...

nginx之快取補充

陳舊總比沒有強 nginx 內容快取的乙個非常強大的特性是 當無法從原始伺服器獲取最新的內容時,nginx 可以分發快取中的陳舊 stale,編者注 即過期內容 內容。這種情況一般發生在關聯快取內容的原始伺服器宕機或者繁忙時。比起對客戶端傳達錯誤資訊,nginx 可傳送在其記憶體中的陳舊的檔案。ng...