Nginx服務器的緩存原理,是在學習過程中比較重要的一個知識點,學習通透之后,對于自己的能力會有不小的提升——而且提升不只限于nginx一方面,技術理論一通百通,對于理解其他內容也會有很大幫助。
Web緩存主要思想
Web緩存技術的基本思想是利用客戶訪問的時間局部性原理,對客戶已經訪問過的內容在Nginx服務器本地建立副本,這樣在一段時間內再次訪問該數據,就不需要通過Nginx服務器再次向后端服務器發出請求,所以能夠減少Nginx服務器與后端服務器之間的網絡流量,減輕網絡擁塞,同時還能減小數據傳輸延遲,提高用戶訪問速度。同時,當后端服務器宕機時,Nginx服務器上的副本資源還能夠回應相關的用戶請求,這樣能夠提高后端服務器的魯棒性。
Nginx緩存實現原理
基于Proxy Store的緩存機制
01
404錯誤驅動
當Nginx服務器發現,用戶請求數據在服務器本地不存在時,會產生404錯誤,服務器能夠捕捉該錯誤,進一步轉向后端服務器請求相關數據,最后將后端請求到的數據傳回客戶端,并在服務器本地緩存。
02
資源不存在驅動
原理上基本等同于404錯誤驅動,不同之處在于該方法是通過location塊的location if條件判斷直接驅動Nginx服務器和后端服務器的通信和Web緩存,而不對資源不存在產生404錯誤。
配置文件片段:
這兩種緩存機制只能緩存200狀態下的響應數據,同時不支持動態鏈接請求。比如:getsource?id=1和getsource?id=2這兩個請求,返回的是相同的資源。所以實際上,一般是采用Nginx搭配Squid服務器架構實現方案。
基于memcached的緩存機制
memcached在內存中開辟一塊空間,然后建立一個Hash表,將緩存數據通過鍵/值存儲在Hash表中進行管理。memcached由服務端和客戶端兩個核心模塊組成,服務端通過計算“鍵”的Hash值來確定鍵/值對在服務端所處的位置。當位置確定后,客戶端就會向對應的服務端發送一個查詢請求,讓服務端查找并返回所需數據。
-
服務器
+關注
關注
12文章
9231瀏覽量
85626 -
nginx
+關注
關注
0文章
151瀏覽量
12189
原文標題:三分鐘看懂Nginx服務器的緩存原理和機制
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論