Nginx2 4 快取簡介

2021-10-08 12:45:35 字數 2202 閱讀 2003

nginx的http_proxy模組,可以實現類似於 squid的快取功能、

nginx對客戶已經訪問過的內容在nginx伺服器本地建立副本,這樣在一段時間內再次訪問該資料,就不需要通過nginx伺服器再次向後端伺服器發出請求,所以能夠減少nginx伺服器與後端伺服器之間的網路流量,減輕網路擁塞,同時還能減少資料傳輸延遲,提高使用者訪問速度。

同時,當後端伺服器當即時,nginx服務上的副本資源還能夠回應相關的使用者請求,提高後端伺服器的健壯性。

proxy_cache_path:ngxin使用該引數指定快取位置

proxy_cache:該引數為之前的快取名稱

proxy_cache_path:兩個必填引數,

第乙個:快取目錄

第二個:keys_zone指定快取名稱和占用記憶體空間的大小

注:例項中的10m是對記憶體中快取內容元資料資訊大小的限制,如果想限制快取總量大小,需要用max_size引數。

nginx缺省會快取所有的get和head方法的請求結果,快取的key預設使用請求字串。

自定義key,例如:proxy_cache_key "$host$request_url$cookie_user"

指定請求至少被傳送了多少次以上時才快取,可以防止低頻請求被快取。

例如:proxy_cache_min_user 5;

指定哪些方法的請求被快取

例如:proxy_cache_methods get head post;

預設情況下, 快取的內容是長期保留的,除非快取的總量超出限制。可以指定快取有效時間。例如:

響應狀態碼為200 302時,10分鐘有效 例如:proxy_cache_valid 200 302 10m;

對應任何狀態碼,5分鐘有效,例如:proxy_cache_valid 5m;

proxy_cache_bypass:該指令來自原伺服器而不是快取。

例如:proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;

如果任何乙個引數值不為空,或者不等於0,nginx就不會直接查詢快取,直接進行****。

網頁的快取是由http訊息頭中"cache-control"來控制的,常見的取值有private、 no-cacahe、 max-age 、must-revalidate等,預設為private。起作用根據不同的重新訪問方式分為以下幾種情況。

cache-directive

說明public

所有內容都將被快取(客戶端和**伺服器都可快取)

private

內容只快取到私有快取中(僅客戶端可以快取,**伺服器不可快取)

no-cache

no-store

所有內容都不會被快取到快取或internet臨時檔案中

must-revalidation/proxy-revalidation

如果快取的內容失效,請求必須傳送到伺服器/**以進行重新驗證

max-age=*** (*** is numeric)

快取的內容將在***秒後失效,這個選項只在http1.1可用,並如果 和last-modified一起使用時,優先順序較高

小結:解決這些問題後,nginx的快取也就基本配置完成了。新請求--存不存--存多久---繼續

web快取簡介

1.把內容快取到磁碟上 1 某些框架模板的頁面快取功能,例如smarty,zend framework 快取等等 這些的缺點是你必須用到這些框架或是模板,這也會帶來一些效能的開銷。其實也可以自己寫個簡單的快取方法。2 直接將變化不是很頻繁的內容靜態化,定期更新,靜態檔案的請求速度和消耗資源都遠小於動...

Nginx 快取控制

nginx 有好幾個引數控制快取,以nginx快取檔案作為例子。第一,快取池 proxy cache path var cache nginx proxy cache levels 1 2 keys zone static 50m max size 10g inactive 3d 這個引數控制快取池...

nginx快取設定

目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...