衆所周知,nginx是一個高性能的web伺服器,尤其在高并發和處理靜态頁面的時候有先天的優勢;很大一部分得益于緩存的開啟,那麼如何開啟nginx的緩存呢。
簡單來說可以分兩步:
定義緩存存儲目錄并指定共享記憶體空間
在location裡指定共享記憶體空間
具體實作如下:
上述配置裡cache相關,具體解釋如下:
proxy_cache_path:定義緩存目錄,需要手動建立此目錄;緩存資料存放至此。
/data/nginx/cache2:自定義的緩存目錄,緩存中的檔案名稱是應用md5的結果;另外,首先是将緩存響應寫入臨時檔案,然後檔案才被重命名;
levels=1:2:定義緩存的層次結構級别;這裡表示緩存目錄的第一級目錄是1個字元,第二級目錄是2個字元;結構類似:
keys_zone=mycache:1024m:核心中建立的用于緩存資料原資料的共享記憶體空間;這裡存放緩存資料的原資料;查找緩存的時候,先從這個核心空間中找到,緩存資料的原資料,然後再到對應目錄中查找緩存;我這裡定義的zone名稱為‘mycache’;
max_size=2048m:設定緩存空間的最大值;
inactive=1d: 設定緩存的資料保留時間,這裡自定義1天内沒有被通路過就删除;
proxy_cache:在location裡設定記憶體緩存源資料空間名字,對應我們前面的設定'mycache';
proxy_cache_valid: 可以為不同的響應狀态碼設定不同的緩存時間,比如這裡200狀态碼,設定為1天;
proxy_cache_use_stale:指定後端伺服器出現狀況時,nginx可以使用的過期緩存
另外可以設定proxy_cache_key:用來指定緩存所使用的key的組合字元串,然後用md5進行加密。如不指定預設使用:$scheme$proxy_host$request_uri;