亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解ngx_cache_purge _proxy_cache指令使用

瀏覽:12日期: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 指令

該指令用于配置一塊公用的內(nèi)存區(qū)域的名稱,該區(qū)域可以存放緩存的索引數(shù)據(jù)。這些數(shù)據(jù)在Nginx服務(wù)器啟動(dòng)時(shí)由緩存索引重建進(jìn)程負(fù)責(zé)建立,在Nginx服務(wù)器的整個(gè)運(yùn)行過(guò)程中由緩存管理進(jìn)程負(fù)責(zé)定時(shí)檢測(cè)過(guò)期數(shù)據(jù),檢索等管理工作。

proxy_cache zone | off;
zone,設(shè)置的用于存放緩存索引的內(nèi)存區(qū)域的名稱。
off,關(guān)閉proxy_cache 功能,是默認(rèn)的設(shè)置。

2. proxy_cache_bypass指令

該指令用于配置Nginx服務(wù)器向客戶端發(fā)送響應(yīng)數(shù)據(jù)時(shí),不從緩存中獲取的條件。這些條件支持使用Nginx 配置的常用變量。

proxy_cache_bypass string …;
string為條件變量,支持設(shè)置多個(gè),當(dāng)至少有一個(gè)字符串指令不為空或者不等于О時(shí),響應(yīng)數(shù)據(jù)不從緩存中獲取。
看一個(gè)例子: 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指令

該指令用于設(shè)置Nginx服務(wù)器在內(nèi)存中為緩存數(shù)據(jù)建立索引時(shí)使用的關(guān)鍵字

proxy cache key string;
string為設(shè)置的關(guān)鍵字,支持變量。

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

4. proxy_cache_lock指令

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

proxy_cache_lock on | off;
默認(rèn)情況下為關(guān)閉

5. proxy_cache_lock_timeout指令

該指令用于設(shè)置緩存的鎖功能開啟以后鎖的超時(shí)時(shí)間。具體細(xì)節(jié)參見(jiàn)proxy_cache_lock 指令的相關(guān)內(nèi)容

proxy cache_ lock_timeout time;
其中,time為設(shè)置的時(shí)間,默認(rèn)為5s。

6. proxy_cache_min_uses指令

該指令用于設(shè)置客戶端請(qǐng)求發(fā)送的次數(shù),當(dāng)客戶端向被代理服務(wù)器發(fā)送相同請(qǐng)求達(dá)到該指令設(shè)定的次數(shù)后,Nginx服務(wù)器才對(duì)該請(qǐng)求的響應(yīng)數(shù)據(jù)做緩存。合理設(shè)置該值可以有效地降低硬盤上緩存數(shù)據(jù)的數(shù)量,并提高緩存的命中率。

proxy_cache_min_uses number;
其中,number為設(shè)置的次數(shù)。默認(rèn)設(shè)置為1。

7. proxy_cache_path指令

該指令用于設(shè)置Nginx服務(wù)器存儲(chǔ)緩存數(shù)據(jù)的路徑以及和緩存索引相關(guān)的內(nèi)容

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

該指令設(shè)置比較復(fù)雜,一般需要設(shè)置前面三個(gè)指令的情形比較多,后面的幾個(gè)變量與Nginx服務(wù)器緩存索引重建進(jìn)程及管理進(jìn)程的性能相關(guān),一般情況下保持默認(rèn)設(shè)置就可以了。我們來(lái)看幾個(gè)簡(jiǎn)單的配置實(shí)例:

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在訪問(wèn)被代理服務(wù)器過(guò)程中出現(xiàn)被代理的服務(wù)器無(wú)法訪問(wèn)或者訪問(wèn)錯(cuò)誤等現(xiàn)象時(shí),Nginx服務(wù)器可以使用歷史緩存響應(yīng)客戶端的請(qǐng)求,這些數(shù)據(jù)不一定和被代理服務(wù)器上最新的數(shù)據(jù)相一致,但對(duì)于更新頻率不高的后端服務(wù)器來(lái)說(shuō),Nginx服務(wù)器的該功能在一定程度上能夠?yàn)榭蛻舳颂峁┎婚g斷訪問(wèn)。該指令用來(lái)設(shè)置一些狀態(tài),當(dāng)后端被代理的服務(wù)器處于這些狀態(tài)時(shí),Nginx服務(wù)器啟用該功能。

該指令可以支持的狀態(tài)如語(yǔ)法結(jié)構(gòu)中所示。

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

9. proxy_cache_valid指令

該指令可以針對(duì)不同的HTTP響應(yīng)狀態(tài)設(shè)置不同的緩存時(shí)間

proxy_cache_valid [code…] time;

  • code,設(shè)置HTTP響應(yīng)的狀態(tài)代碼。該指令可選,如果不設(shè)置,Nginx服務(wù)器只為HTTP狀態(tài)代碼為200、301和302的響應(yīng)數(shù)據(jù)做緩存??梢允褂?ldquo;any”表示緩存所有該指令中未設(shè)置的其他響應(yīng)數(shù)據(jù)。
  • time,設(shè)置緩存時(shí)間??磶讉€(gè)例子:
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

上述例子中,對(duì)返回狀態(tài)為200和302的響應(yīng)數(shù)據(jù)緩存10分鐘,對(duì)返回狀態(tài)為301的響應(yīng)數(shù)據(jù)緩存1小時(shí),對(duì)返回狀態(tài)為非200、302和301的響應(yīng)數(shù)據(jù)緩存1分鐘。

10. proxy_no_cache

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

proxy_no_cache $string…;
string 可以是一個(gè)或者都多個(gè)變量。當(dāng)string的值不為空或者不為0時(shí),不啟用cache功能

11. proxy_store 指令

該指令配置是否在本地磁盤緩存來(lái)自被代理服務(wù)器的響應(yīng)數(shù)據(jù)。這是Nginx服務(wù)器提供的另一種緩存數(shù)據(jù)的方法,但是該功能相對(duì) Proxy
Cache簡(jiǎn)單一些,它不提供緩存過(guò)期更新、內(nèi)存索引建立等功能,不占用內(nèi)存空間,對(duì)靜態(tài)數(shù)據(jù)的效果比較好。

proxy_store on | off | string;

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

Proxy Store方法多使用在被代理服務(wù)器端發(fā)生錯(cuò)誤的情況下,用來(lái)緩存被代理服務(wù)器的響應(yīng)數(shù)據(jù)。

12. proxy_store_access指令

該指令用于設(shè)置用戶或用戶組對(duì)Proxy Store緩存的數(shù)據(jù)的訪問(wèn)權(quán)限

proxy_store_access users:permissions …

  • users,可以設(shè)置為user、group或者all。
  • permissions,設(shè)置權(quán)限。

有關(guān)Proxy Store方法的使用,我們通過(guò)官方給出的實(shí)例加深理解,在該實(shí)例中筆者通過(guò)注釋對(duì)配置做了說(shuō)明:

location /images/
{
? root /data/www;
? error_page 404 = /fetch$uri; ? ? ?#定義了404錯(cuò)誤的請(qǐng)求頁(yè)面
}

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

到此這篇關(guān)于詳解ngx_cache_purge _proxy_cache指令使用的文章就介紹到這了,更多相關(guān)ngx_cache_purge _proxy_cache指令內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Nginx
主站蜘蛛池模板: 久久亚洲一级α片 | 久久99热这里只频精品6中文字幕 | 香蕉97碰碰视频在线看 | 中文字幕免费在线观看动作大片 | 国产1024精品视频专区免费 | 国产精品爱久久久久久久电影 | 日韩中文在线视频 | 久久香蕉国产观看猫咪3atv | 国模精品视频一区二区三区 | 黄欧美 | 亚洲国产精品免费观看 | 中日韩一级片 | 国产女人成人精品视频 | 成年女人视频播放免费观看 | 国产一区二三区 | 亚州综合激情另类久久久 | 免费日本一区 | 亚洲一区二区免费在线观看 | 经典三级第一页 | 97se狠狠狠狠狼亚洲综合网 | 日韩中文字幕在线视频 | 国产成人精品午夜 | 亚洲第一区精品日韩在线播放 | 欧美日韩综合网 | 亚洲国产成人久久精品影视 | 99久久精品免费看国产 | 免费一级a毛片免费观看欧美大片 | 四月色| 亚洲无成人网77777 | 国产自愉怕一区二区三区 | 在线观看视频一区 | 欧美成人免费看片一区 | 97视频免费看 | 久草视频新 | 亚洲日本高清影院毛片 | 韩国美女激情视频一区二区 | 久久艹逼 | 伊人蕉久中文字幕无码专区 | 欧美777精品久久久久网 | 欧美精品一区二区在线观看播放 | 亚洲欧美日韩在线播放 |