av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

詳解ngx_cache_purge _proxy_cache指令使用

瀏覽:60日期: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ū)域的名稱(chēng),該區(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ū)域的名稱(chēng)。
off,關(guān)閉proxy_cache 功能,是默認(rèn)的設(shè)置。

2. proxy_cache_bypass指令

該指令用于配置Nginx服務(wù)器向客戶(hù)端發(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ī)名稱(chēng)等關(guān)鍵字,則可以將該指令設(shè)置為:
proxy_cache_key “s c h e m e schemeschemehost$request”;

4. proxy_cache_lock指令

該指令用于設(shè)置是否開(kāi)啟緩存的鎖功能。在緩存中,某些數(shù)據(jù)項(xiàng)可以同時(shí)被多個(gè)請(qǐng)求返回的響應(yīng)數(shù)據(jù)填充。開(kāi)啟該功能后,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è)置緩存的鎖功能開(kāi)啟以后鎖的超時(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è)置客戶(hù)端請(qǐng)求發(fā)送的次數(shù),當(dāng)客戶(hù)端向被代理服務(wù)器發(fā)送相同請(qǐng)求達(dá)到該指令設(shè)定的次數(shù)后,Nginx服務(wù)器才對(duì)該請(qǐng)求的響應(yīng)數(shù)據(jù)做緩存。合理設(shè)置該值可以有效地降低硬盤(pán)上緩存數(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ù)先存在于磁盤(pán)上的。levels,設(shè)置在相對(duì)于path指定目錄的第幾級(jí)hash目錄中緩存數(shù)據(jù)。
  • levels=1:表示一級(jí)hash目錄;levels=1:2,表示兩級(jí),依次類(lèi)推。目錄的名稱(chēng)是基于請(qǐng)求URL通過(guò)哈希算法獲取到的。
  • name:sizel,Nginx服務(wù)器的緩存索引重建進(jìn)程在內(nèi)存中為緩存數(shù)據(jù)建立索引,這一對(duì)變量用來(lái)設(shè)置存放緩存索引的內(nèi)存區(qū)域的名稱(chēng)和大小。
  • timel,設(shè)置強(qiáng)制更新緩存數(shù)據(jù)的時(shí)間,當(dāng)硬盤(pán)上的緩存數(shù)據(jù)在設(shè)定的時(shí)間內(nèi)沒(méi)有被訪(fǎng)問(wèn)時(shí),Nginx服務(wù)器就強(qiáng)制從硬盤(pán)上將其刪除,下次客戶(hù)端訪(fǎng)問(wèn)該數(shù)據(jù)時(shí)重新緩存。該指令默認(rèn)設(shè)置為10s。
  • size2、設(shè)置硬盤(pán)中緩存數(shù)據(jù)的大小限制。我們知道,硬盤(pán)中的緩存源數(shù)據(jù)由Nginx服務(wù)器的緩存管理進(jìn)程進(jìn)行管理,當(dāng)緩存的大小超過(guò)該變量的設(shè)置時(shí),緩存管理進(jìn)程將根據(jù)最近最少被訪(fǎng)問(wèn)的策略刪除緩存。
  • number,設(shè)置緩存索引重建進(jìn)程每次加載的數(shù)據(jù)元素的數(shù)量上限。在重建緩存索引的過(guò)程中,進(jìn)程通過(guò)一系列的遞歸遍歷讀取硬盤(pán)上的緩存數(shù)據(jù)目錄及緩存數(shù)據(jù)文件,對(duì)每個(gè)數(shù)據(jù)文件中的緩存數(shù)據(jù)在內(nèi)存中建立對(duì)應(yīng)的索引,我們稱(chē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é)束、下次遍歷開(kāi)始之間的暫停時(shí)長(zhǎng)。默認(rèn)設(shè)置為50ms.
  • time3,設(shè)置遍歷一次磁盤(pán)緩存源數(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在訪(fǎng)問(wèn)被代理服務(wù)器過(guò)程中出現(xiàn)被代理的服務(wù)器無(wú)法訪(fǎng)問(wèn)或者訪(fǎng)問(wèn)錯(cuò)誤等現(xiàn)象時(shí),Nginx服務(wù)器可以使用歷史緩存響應(yīng)客戶(hù)端的請(qǐng)求,這些數(shù)據(jù)不一定和被代理服務(wù)器上最新的數(shù)據(jù)相一致,但對(duì)于更新頻率不高的后端服務(wù)器來(lái)說(shuō),Nginx服務(wù)器的該功能在一定程度上能夠?yàn)榭蛻?hù)端提供不間斷訪(fǎng)問(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ù)做緩存。可以使用“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 指令

該指令配置是否在本地磁盤(pán)緩存來(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è)置是否開(kāi)啟ProxyStore功能。如果使用變量on,功能開(kāi)啟,緩存文件會(huì)存放到alias指令或root指令設(shè)置的本地路徑下。默認(rèn)設(shè)置為off。
  • string,自定義緩存文件的存放路徑。如果使用變量string,Proxy Store功能開(kāi)啟,緩存文件會(huì)存放到指定的本地路徑下。

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

12. proxy_store_access指令

該指令用于設(shè)置用戶(hù)或用戶(hù)組對(duì)Proxy Store緩存的數(shù)據(jù)的訪(fǎng)問(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; ? ? ? ? ? ? ? ? ? #開(kāi)啟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精品国自产在线 | 日韩亚洲视频 | 亚洲人a | 日韩欧美字幕 | 国产精品久久午夜夜伦鲁鲁 | 国产精品久久久久久久久久软件 | 亚洲欧美日韩中文字幕一区二区三区 | 一区二区三区视频在线观看 | 国产小视频自拍 | 91精品国产色综合久久 | 人妖无码 | 欧美日韩18| 亚洲欧美日韩久久久 | 91精品国产综合久久婷婷香蕉 | 欧美激情在线精品一区二区三区 | 一区二区免费在线视频 | 欧美精品久久久久 | 91麻豆精品一区二区三区 | 黄色网址在线免费播放 | 亚洲国产小视频 | av网站在线播放 | 久久久国产视频 | 亚洲欧美精品久久 | 99免费视频 | 亚洲女人天堂网 | 蜜桃免费一区二区三区 | 日本黄色免费视频 | 久久久精品视 | 欧洲一区二区在线 | 欧美国产日韩一区二区三区 | 精品视频一区二区在线观看 | 日韩在线一区二区 | 色综合99| 亚洲视频自拍 | 亚洲久久久 | 亚洲欧美日韩中文字幕一区二区三区 | 中文av字幕 | 999视频| 天天躁日日躁狠狠躁2018小说 | 久久久久国产一级毛片高清网站 |