国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

如何了解nginx的緩存機(jī)制

2017-04-30 20:38:47 15246

Nginx服務(wù)器的緩存原理,是在學(xué)習(xí)過(guò)程中比較重要的一個(gè)知識(shí)點(diǎn),學(xué)習(xí)通透之后,對(duì)于自己的能力會(huì)有不小的提升——而且提升不只限于nginx一方面,技術(shù)理論一通百通,對(duì)于理解其他內(nèi)容也會(huì)有很大幫助。

Web緩存主要思想

Web緩存技術(shù)的基本思想是利用客戶訪問(wèn)的時(shí)間局部性原理,對(duì)客戶已經(jīng)訪問(wèn)過(guò)的內(nèi)容在Nginx服務(wù)器本地建立副本,這樣在一段時(shí)間內(nèi)再次訪問(wèn)該數(shù)據(jù),就不需要通過(guò)Nginx服務(wù)器再次向后端服務(wù)器發(fā)出請(qǐng)求,所以能夠減少Nginx服務(wù)器與后端服務(wù)器之間的網(wǎng)絡(luò)流量,減輕網(wǎng)絡(luò)擁塞,同時(shí)還能減小數(shù)據(jù)傳輸延遲,提高用戶訪問(wèn)速度。同時(shí),當(dāng)后端服務(wù)器宕機(jī)時(shí),Nginx服務(wù)器上的副本資源還能夠回應(yīng)相關(guān)的用戶請(qǐng)求,這樣能夠提高后端服務(wù)器的魯棒性。

Nginx緩存實(shí)現(xiàn)原理

基于Proxy Store的緩存機(jī)制

1.404錯(cuò)誤驅(qū)動(dòng)

當(dāng)Nginx服務(wù)器發(fā)現(xiàn),用戶請(qǐng)求數(shù)據(jù)在服務(wù)器本地不存在時(shí),會(huì)產(chǎn)生404錯(cuò)誤,服務(wù)器能夠捕捉該錯(cuò)誤,進(jìn)一步轉(zhuǎn)向后端服務(wù)器請(qǐng)求相關(guān)數(shù)據(jù),最后將后端請(qǐng)求到的數(shù)據(jù)傳回客戶端,并在服務(wù)器本地緩存。

   blob.png

02資源不存在驅(qū)動(dòng)

原理上基本等同于404錯(cuò)誤驅(qū)動(dòng),不同之處在于該方法是通過(guò)location塊的location if條件判斷直接驅(qū)動(dòng)Nginx服務(wù)器和后端服務(wù)器的通信和Web緩存,而不對(duì)資源不存在產(chǎn)生404錯(cuò)誤。

配置文件片段:

 blob.png

這兩種緩存機(jī)制只能緩存200狀態(tài)下的響應(yīng)數(shù)據(jù),同時(shí)不支持動(dòng)態(tài)鏈接請(qǐng)求。比如:getsource?id=1和getsource?id=2這兩個(gè)請(qǐng)求,返回的是相同的資源。所以實(shí)際上,一般是采用Nginx搭配Squid服務(wù)器架構(gòu)實(shí)現(xiàn)方案。

基于memcached的緩存機(jī)制

memcached在內(nèi)存中開(kāi)辟一塊空間,然后建立一個(gè)Hash表,將緩存數(shù)據(jù)通過(guò)鍵/值存儲(chǔ)在Hash表中進(jìn)行管理。memcached由服務(wù)端和客戶端兩個(gè)核心模塊組成,服務(wù)端通過(guò)計(jì)算“鍵”的Hash值來(lái)確定鍵/值對(duì)在服務(wù)端所處的位置。當(dāng)位置確定后,客戶端就會(huì)向?qū)?yīng)的服務(wù)端發(fā)送一個(gè)查詢請(qǐng)求,讓服務(wù)端查找并返回所需數(shù)據(jù)。

[來(lái)源于馬哥linux]


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: