nginx 緩存問題

NGINX通常作為應(yīng)用程序堆棧中的反向代理或負(fù)載平衡器部署,并具有一整套緩存功能

如何設(shè)置和配置基本緩存

只需要兩個指令即可啟用基本緩存:[proxy_cache_path](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path)[proxy_cache](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache)。該proxy_cache_path指令設(shè)置緩存的路徑和配置,proxy_cache指令激活它

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g 
                 inactive=60m use_temp_path=off;

server {
    # ...
    location / {
        proxy_cache my_cache;
        proxy_pass http://my_upstream;
    }
}

proxy_cache_path指令的參數(shù)定義了以下設(shè)置:

  • 緩存的本地磁盤目錄稱為/ path/ to/cache /。
  • levels/ path/ to/cache /下設(shè)置一個兩級目錄層次結(jié)構(gòu)。在單個目錄中包含大量文件會降低文件訪問速度,因此我們建議對大多數(shù)部署使用兩級目錄層次結(jié)構(gòu)。如果levels未包含該參數(shù),NGINX會將所有文件放在同一目錄中。
  • keys_zone設(shè)置共享內(nèi)存區(qū)域,用于存儲緩存鍵和元數(shù)據(jù),例如使用計時器。將鍵的拷貝放入內(nèi)存可以使NGINX在不檢索磁盤的情況下快速決定一個請求是HIT還是MISS,這樣大大提高了檢索速度。。1 MB區(qū)域可以存儲大約8,000個密鑰的數(shù)據(jù),因此示例中配置的10 MB區(qū)域可以存儲大約80,000個密鑰的數(shù)據(jù)。
  • max_size設(shè)置緩存大小的上限(在本例中為10G字節(jié))。它是可選的; 不指定值允許緩存增長以使用所有可用磁盤空間。當(dāng)緩存大小達(dá)到限制時,稱為緩存管理器的進(jìn)程將刪除最近最少用于將緩存大小恢復(fù)到限制之下的文件。
  • inactive指定項目在未被訪問的情況下可以保留在緩存中的時間長度。在上面的例子中,如果一個文件在60分鐘之內(nèi)沒有被請求,則緩存管理將會自動將其在內(nèi)存中刪除,不管該文件是否過期。默認(rèn)值為10分鐘(10m)。非活動內(nèi)容與過期內(nèi)容不同。NGINX不會自動刪除緩存控件頭定義的已過期內(nèi)容(Cache-Control:max-age=120例如)。過期(陳舊)內(nèi)容僅在指定時間內(nèi)未被訪問時被刪除inactive。訪問過期內(nèi)容時,NGINX會從原始服務(wù)器刷新它并重置inactive計時器。
  • NGINX首先將發(fā)往高速緩??存的文件寫入臨時存儲區(qū)域,該use_temp_path=off指令指示NGINX將它們寫入將被高速緩存的相同目錄。我們建議您將此參數(shù)設(shè)置off為避免在文件系統(tǒng)之間進(jìn)行不必要的數(shù)據(jù)復(fù)制。use_temp_path在NGINX 1.7.10和NGINX Plus R6中引入。

nginx緩存優(yōu)先級

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容