nginx 頁面快取

2021-07-13 04:15:01 字數 1973 閱讀 8901

proxy_cache_path

語法:proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];

預設值:none

使用字段:http

指令指定快取的路徑和一些其他引數,快取的資料儲存在檔案中,並且使用**url的雜湊值作為關鍵字與檔名。levels引數指定快取的子目錄數,例如:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;

檔名類似於:

/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c

levels指定目錄結構,可以使用任意的1位或2位數字作為目錄結構,如 x, x:x,或x:x:x 例如: 「2」, 「2:2」, 「1:1:2「,但是最多只能是**目錄。

所有活動的key和元資料儲存在共享的記憶體池中,這個區域用keys_zone引數指定。one指的是共享池的名稱,10m指的是共享池的大小。

注意每乙個定義的記憶體池必須是不重複的路徑,例如:

proxy_cache_path /data/nginx/cache/one levels=1 keys_zone=one:10m;

proxy_cache_path /data/nginx/cache/two levels=2:2 keys_zone=two:100m;

proxy_cache_path /data/nginx/cache/three levels=1:1:2 keys_zone=three:1000m;

如果在inactive引數指定的時間內快取的資料沒有被請求則被刪除,預設inactive為10分鐘。乙個名為cache manager的程序控制磁碟的快取大小,它被用來刪除不活動的快取和控制快取大小,這些都在max_size引數中定義,當目前快取的值超出max_size指定的值之後,超過其大小後最少使用資料(lru替換演算法)將被刪除。記憶體池的大小按照快取頁面數的比例進行設定,乙個頁面(檔案)的元資料大小按照作業系統來定,如freebsd/i386下為64位元組,freebsd/amd64下為128位元組。

proxy_cache

語法:proxy_cache zone_name;

預設值:none

使用字段:http, server, location

設定乙個快取區域的名稱,乙個相同的區域可以在不同的地方使用。

在0.7.48後,快取遵循後端的」expires」, 「cache-control: no-cache」, 「cache-control: max-age=***」頭部字段,0.7.66版本以後,」cache-control:「private」和」no-store」頭同樣被遵循。nginx在快取過程中不會處理」vary」頭,為了確保一些私有資料不被所有的使用者看到,後端必須設定 「no-cache」或者」max-age=0」頭,或者proxy_cache_key包含使用者指定的資料如$cookie_***,使用cookie的值作為proxy_cache_key的一部分可以防止快取私有資料,所以可以在不同的location中分別指定proxy_cache_key的值以便分開私有資料和公有資料。

快取指令依賴**緩衝區(buffers),如果proxy_buffers設定為off,快取不會生效。

proxy_cache_valid

2.定義乙個簡單nginx快取伺服器

[root@nginx ~]# vim /etc/nginx/nginx.conf

proxy_cache_path /data/nginx/cache/webserver levels=1:2 keys_zone=webserver:20

m max_size=1g;

server

}

Nginx之頁面快取二

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

使用Nginx實現頁面快取

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

nginx快取動態頁面功能的設定

網上查了一下相關資料,主要是在需要快取的路徑加proxy cache,而後端動態頁面也需要做相應的處理,否則無法被nginx快取。或者nginx配置處加上proxy ignore headers 檢測到是 伺服器訪問的時候,給動態頁面加上和靜態頁面一致的頭部資訊,例如 etag 1febdd4429...