国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

詳解ngx_cache_purge _proxy_cache指令使用

瀏覽:14日期:2023-03-13 15:37:10
目錄
  • 1. proxy_cache 指令
  • 2. proxy_cache_bypass指令
  • 3. proxy_cache_key指令
  • 4. proxy_cache_lock指令
  • 5. proxy_cache_lock_timeout指令
  • 6. proxy_cache_min_uses指令
  • 7. proxy_cache_path指令
  • 8. proxy_cache_use_stale指令
  • 9. proxy_cache_valid指令
  • 10. proxy_no_cache
  • 11. proxy_store 指令
  • 12. proxy_store_access指令

1. proxy_cache 指令

該指令用于配置一塊公用的內存區域的名稱,該區域可以存放緩存的索引數據。這些數據在Nginx服務器啟動時由緩存索引重建進程負責建立,在Nginx服務器的整個運行過程中由緩存管理進程負責定時檢測過期數據,檢索等管理工作。

proxy_cache zone | off;
zone,設置的用于存放緩存索引的內存區域的名稱。
off,關閉proxy_cache 功能,是默認的設置。

2. proxy_cache_bypass指令

該指令用于配置Nginx服務器向客戶端發送響應數據時,不從緩存中獲取的條件。這些條件支持使用Nginx 配置的常用變量。

proxy_cache_bypass string …;
string為條件變量,支持設置多個,當至少有一個字符串指令不為空或者不等于О時,響應數據不從緩存中獲取。
看一個例子: proxy_cache _bypass $cookie_nocache $arg nocache $Sarg_comment

$http_pragma $http.authorization;
其中,Scookie_nocache、Sarg_nocache、Sarg_comment、Shttp_pragma
和Shttp_authorization 都是Nginx配置文件的變量,

3. proxy_cache_key指令

該指令用于設置Nginx服務器在內存中為緩存數據建立索引時使用的關鍵字

proxy cache key string;
string為設置的關鍵字,支持變量。

如果我們希望緩存數據包含服務器主機名稱等關鍵字,則可以將該指令設置為:
proxy_cache_key “s c h e m e schemeschemehost$request”;

4. proxy_cache_lock指令

該指令用于設置是否開啟緩存的鎖功能。在緩存中,某些數據項可以同時被多個請求返回的響應數據填充。開啟該功能后,Nginx服務器同時只能有一個請求填充緩存中的某一數據項,這相當于給該數據項上鎖,不允許其他請求操作。其他的請求如果也想填充該項,必須等待該數據項的鎖被釋放。這個等待時間由
proxy_cache_lock_timeout 指令配置。

proxy_cache_lock on | off;
默認情況下為關閉

5. proxy_cache_lock_timeout指令

該指令用于設置緩存的鎖功能開啟以后鎖的超時時間。具體細節參見proxy_cache_lock 指令的相關內容

proxy cache_ lock_timeout time;
其中,time為設置的時間,默認為5s。

6. proxy_cache_min_uses指令

該指令用于設置客戶端請求發送的次數,當客戶端向被代理服務器發送相同請求達到該指令設定的次數后,Nginx服務器才對該請求的響應數據做緩存。合理設置該值可以有效地降低硬盤上緩存數據的數量,并提高緩存的命中率。

proxy_cache_min_uses number;
其中,number為設置的次數。默認設置為1。

7. proxy_cache_path指令

該指令用于設置Nginx服務器存儲緩存數據的路徑以及和緩存索引相關的內容

proxy_cache_path [levels=levels] keys_zone=name:sizel [inactive=time1] [max_size=size2][loader_files=number] [loader_sleep=time2][loader_threshold-time3];
  • path,設置緩存數據存放的根路徑,該路徑應該是預先存在于磁盤上的。levels,設置在相對于path指定目錄的第幾級hash目錄中緩存數據。
  • levels=1:表示一級hash目錄;levels=1:2,表示兩級,依次類推。目錄的名稱是基于請求URL通過哈希算法獲取到的。
  • name:sizel,Nginx服務器的緩存索引重建進程在內存中為緩存數據建立索引,這一對變量用來設置存放緩存索引的內存區域的名稱和大小。
  • timel,設置強制更新緩存數據的時間,當硬盤上的緩存數據在設定的時間內沒有被訪問時,Nginx服務器就強制從硬盤上將其刪除,下次客戶端訪問該數據時重新緩存。該指令默認設置為10s。
  • size2、設置硬盤中緩存數據的大小限制。我們知道,硬盤中的緩存源數據由Nginx服務器的緩存管理進程進行管理,當緩存的大小超過該變量的設置時,緩存管理進程將根據最近最少被訪問的策略刪除緩存。
  • number,設置緩存索引重建進程每次加載的數據元素的數量上限。在重建緩存索引的過程中,進程通過一系列的遞歸遍歷讀取硬盤上的緩存數據目錄及緩存數據文件,對每個數據文件中的緩存數據在內存中建立對應的索引,我們稱每建立一個索引為加載一個數據元素。進程在每次遍歷過程中可以同時加載多個數據元素,該值限制了每次遍歷中同時加載的數據元素的數量。默認設置為100。
  • time2,設置緩存索引重建進程在一次遍歷結束、下次遍歷開始之間的暫停時長。默認設置為50ms.
  • time3,設置遍歷一次磁盤緩存源數據的時間上限。默認設置為200ms

該指令設置比較復雜,一般需要設置前面三個指令的情形比較多,后面的幾個變量與Nginx服務器緩存索引重建進程及管理進程的性能相關,一般情況下保持默認設置就可以了。我們來看幾個簡單的配置實例:

proxy_cache path /nginx/cache/a levels=1 keys_zone=a:10m;
proxy_cache_path /nginx/cache /b levels-2:2 keys_zone=b:100m;
proxy _cache_path /nginx/cache/c levels=1:1:2 keys_zone=c:1000m;

8. proxy_cache_use_stale指令

如果Nginx在訪問被代理服務器過程中出現被代理的服務器無法訪問或者訪問錯誤等現象時,Nginx服務器可以使用歷史緩存響應客戶端的請求,這些數據不一定和被代理服務器上最新的數據相一致,但對于更新頻率不高的后端服務器來說,Nginx服務器的該功能在一定程度上能夠為客戶端提供不間斷訪問。該指令用來設置一些狀態,當后端被代理的服務器處于這些狀態時,Nginx服務器啟用該功能。

該指令可以支持的狀態如語法結構中所示。

proxy_cache_use_stale error| timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_404 | off..·:

9. proxy_cache_valid指令

該指令可以針對不同的HTTP響應狀態設置不同的緩存時間

proxy_cache_valid [code…] time;

  • code,設置HTTP響應的狀態代碼。該指令可選,如果不設置,Nginx服務器只為HTTP狀態代碼為200、301和302的響應數據做緩存。可以使用“any”表示緩存所有該指令中未設置的其他響應數據。
  • time,設置緩存時間。看幾個例子:
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

上述例子中,對返回狀態為200和302的響應數據緩存10分鐘,對返回狀態為301的響應數據緩存1小時,對返回狀態為非200、302和301的響應數據緩存1分鐘。

10. proxy_no_cache

該指令同于配置在什么情況下不使用cache功能

proxy_no_cache $string…;
string 可以是一個或者都多個變量。當string的值不為空或者不為0時,不啟用cache功能

11. proxy_store 指令

該指令配置是否在本地磁盤緩存來自被代理服務器的響應數據。這是Nginx服務器提供的另一種緩存數據的方法,但是該功能相對 Proxy
Cache簡單一些,它不提供緩存過期更新、內存索引建立等功能,不占用內存空間,對靜態數據的效果比較好。

proxy_store on | off | string;

  • on | off,設置是否開啟ProxyStore功能。如果使用變量on,功能開啟,緩存文件會存放到alias指令或root指令設置的本地路徑下。默認設置為off。
  • string,自定義緩存文件的存放路徑。如果使用變量string,Proxy Store功能開啟,緩存文件會存放到指定的本地路徑下。

Proxy Store方法多使用在被代理服務器端發生錯誤的情況下,用來緩存被代理服務器的響應數據。

12. proxy_store_access指令

該指令用于設置用戶或用戶組對Proxy Store緩存的數據的訪問權限

proxy_store_access users:permissions …

  • users,可以設置為user、group或者all。
  • permissions,設置權限。

有關Proxy Store方法的使用,我們通過官方給出的實例加深理解,在該實例中筆者通過注釋對配置做了說明:

location /images/
{
? root /data/www;
? error_page 404 = /fetch$uri; ? ? ?#定義了404錯誤的請求頁面
}

location /fetch/ ? ? ? ? ? ? ? ? ? ?#匹配404錯誤時的請求
{
? proxy_pass http://backend;
? proxy_store on; ? ? ? ? ? ? ? ? ? #開啟Proxy store方法
? proxy_store_access user:rw group:rw all:r;
? root/data/www; ? ? ? ? ? ? ? ? ? ?#緩存數據的路徑
}

到此這篇關于詳解ngx_cache_purge _proxy_cache指令使用的文章就介紹到這了,更多相關ngx_cache_purge _proxy_cache指令內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Nginx
主站蜘蛛池模板: 黄 色 免费网 站 成 人 | 国产三香港三韩国三级不卡 | 国产在线欧美日韩精品一区二区 | 伊人久热这里只有精品视频99 | www成人免费视频 | 亚洲精品久久久久综合中文字幕 | 亚洲爽爽 | 欧美毛片aaa激情 | 国产欧美日韩精品第二区 | 精品视频一区二区 | a毛片免费全部播放毛 | 亚洲日本欧美综合在线一 | 香蕉视频1024 | 中文字幕亚洲日本岛国片 | 中国一级毛片 | 国产精品久久久久网站 | 亚洲成a人片毛片在线 | 亚洲视频欧美视频 | 久久精品99精品免费观看 | 久久久国产乱子伦精品 | 亚洲精品国产成人一区二区 | 一区二区三区日韩 | 乱子伦农村xxxx视频 | 日韩一品在线播放视频一品免费 | 特级aaaaaaaaa毛片免费视频 | 亚洲九九香蕉 | 中文字幕在线成人免费看 | 性夜影院爽黄a爽免费看网站 | 国产精品成aⅴ人片在线观看 | 久久99精品久久久久久三级 | 国产成年人网站 | 国产日韩精品欧美一区视频 | 欧美激情综合亚洲一二区 | 成人影院人人免费 | 精品一区二区三区五区六区 | 高清国产精品久久 | 亚洲依依成人综合在线网址 | 一本久久精品一区二区 | 黄色福利小视频 | 日本欧美大片 | 最新步兵社区在线观看 |