青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 網(wǎng)站 服務器 查看內(nèi)容

Nginx內(nèi)容緩存以及常見參數(shù)配置詳析

2022-10-6 09:48| 查看: 1538 |來源: 互聯(lián)網(wǎng)

使用場景: 項目的頁面需要加載很多數(shù)據(jù),也不是經(jīng)常變化的,不涉及個性化定制,為每次請求去動態(tài)生成數(shù)據(jù),性能比不上根據(jù)請求路由和參數(shù)緩存一下結果,使用 Nginx 緩存將大幅度提升請求速度。 基礎 只需要配置

使用場景:

項目的頁面需要加載很多數(shù)據(jù),也不是經(jīng)常變化的,不涉及個性化定制,為每次請求去動態(tài)生成數(shù)據(jù),性能比不上根據(jù)請求路由和參數(shù)緩存一下結果,使用 Nginx 緩存將大幅度提升請求速度。

基礎

只需要配置 proxy_cache_path 和 proxy_cache 就可以開啟內(nèi)容緩存,前者用來設置緩存的路徑和配置,后者用來啟用緩存。

http { ... proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { proxy_cache mycache; location / { proxy_pass http://localhost:8000; } } }

對應參數(shù)說明:

1.用于緩存的本地磁盤目錄是 /path/to/cache/

2.levels 在 /path/to/cache/ 設置了一個兩級層次結構的目錄。將大量的文件放置在單個目錄中會導致文件訪問緩慢,所以針對大多數(shù)部署,我們推薦使用兩級目錄層次結構。如果 levels 參數(shù)沒有配置,則 NGINX 會將所有的文件放到同一個目錄中。

3.keys_zone 設置一個共享內(nèi)存區(qū),該內(nèi)存區(qū)用于存儲緩存鍵和元數(shù)據(jù),有些類似計時器的用途。將鍵的拷貝放入內(nèi)存可以使 NGINX 在不檢索磁盤的情況下快速決定一個請求是 HIT 還是 MISS,這樣大大提高了檢索速度。一個 1MB 的內(nèi)存空間可以存儲大約 8000 個 key,那么上面配置的 10MB 內(nèi)存空間可以存儲差不多 80000 個key。

4.max_size 設置了緩存的上限(在上面的例子中是 10G)。這是一個可選項;如果不指定具體值,那就是允許緩存不斷增長,占用所有可用的磁盤空間。當緩存達到這個上線,處理器便調(diào)用 cache manager 來移除最近最少被使用的文件,這樣把緩存的空間降低至這個限制之下。

5.inactive 指定了項目在不被訪問的情況下能夠在內(nèi)存中保持的時間。在上面的例子中,如果一個文件在 60 分鐘之內(nèi)沒有被請求,則緩存管理將會自動將其在內(nèi)存中刪除,不管該文件是否過期。該參數(shù)默認值為 10 分鐘(10m)。注意,非活動內(nèi)容有別于過期內(nèi)容。NGINX 不會自動刪除由緩存控制頭部指定的過期內(nèi)容(本例中Cache-Control:max-age=120)。過期內(nèi)容只有在 inactive 指定時間內(nèi)沒有被訪問的情況下才會被刪除。如果過期內(nèi)容被訪問了,那么 NGINX 就會將其從原服務器上刷新,并更新對應的 inactive 計時器。

6.NGINX 最初會將注定寫入緩存的文件先放入一個臨時存儲區(qū)域, use_temp_path=off 命令指示 NGINX 將在緩存這些文件時將它們寫入同一個目錄下。我們強烈建議你將參數(shù)設置為 off 來避免在文件系統(tǒng)中不必要的數(shù)據(jù)拷貝。use_temp_path 在 NGINX1.7 版本和 NGINX Plus R6 中有所介紹。

最終,proxy_cache 命令啟動緩存那些 URL 與 location 部分匹配的內(nèi)容(本例中,為/)。你同樣可以將 proxy_cache 命令添加到 server 部分,這將會將緩存應用到所有的那些 location 中未指定自己的 proxy_cache 命令的服務中。

Nginx 緩存相關進程

緩存中還涉及兩個額外的NGINX進程:

  • cache manager 周期性地啟動,檢查高速緩存的狀態(tài)。如果高速緩存大小超過 proxy_cache_path 中 max_size 參數(shù)設置的限制,則高速緩存管理器將刪除最近訪問過的數(shù)據(jù)。在兩次緩存管理器啟動的間隔,緩存的數(shù)據(jù)量可能短暫超過配置的大小

  • cache loader 只運行一次,NGINX 開始之后。它將有關以前緩存的數(shù)據(jù)的元數(shù)據(jù)加載到共享內(nèi)存區(qū)域。一次加載整個緩存可能會消耗足夠的資源來在啟動后的最初幾分鐘內(nèi)降低 NGINX 的性能。要避免這種情況,請通過在 proxy_cache_path 指令中包含以下參數(shù)來配置緩存的迭代加載:

    • loader_threshold - 迭代持續(xù)時間,以毫秒為單位(默認情況下 200

    • loader_files - 一次迭代期間加載的最大項目數(shù)(默認情況下 100

    • loader_sleeps - 迭代之間的延遲,以毫秒為單位(默認情況下 50

在以下示例中,迭代持續(xù)數(shù)300 毫秒或直到 200 個項目被加載進去:

proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;

其他常用參數(shù)

配置示例:

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_cache_key "$host$request_uri$cookie_user"; proxy_cache_min_uses 3; proxy_cache_methods GET HEAD POST; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; # proxy_cache_valid any 5m; proxy_pass http://localhost:8000; } }

對應參數(shù)說明:

  • proxy_cache_key 為更改計算密鑰時使用的請求特征,指定緩存的 key,這個不推薦,示例是使用域名,請求url,用戶 cookie 來當作 key,意味著一個頁面將為不同的用戶緩存 n 次,絕大多數(shù)情況不需要這樣的操作。
  • proxy_cache_min_uses 為在緩存響應之前必須使用相同密鑰的請求的最小次數(shù)。
  • proxy_cache_methods 為指定要被緩存的請求方式的響應值,默認為 GET 和 HEAD,新增其他的需要一起列出來,如上示例所示。

  • proxy_cache_valid 為響應狀態(tài)碼的緩存時間,示例可以為每個狀態(tài)碼緩存指定時間,也可以使用 any 進行全部狀態(tài)碼的緩存。

清除緩存

需要提前加一個配置,用于標識使用 HTTP PURGE 方法的請求并刪除匹配的 URL 對應的緩存。

1.在 http {} 上下文中創(chuàng)建新變量,例如 $purge_method, 他依賴于 $request_method 變量:

http { ... map $request_method $purge_method { PURGE 1; default 0; } }

2.在 location {} 塊中,已經(jīng)配置緩存的前提下,引入 proxy_cache_purge 參數(shù)來指定清除緩存請求的條件。例如在上一步指定的 $request_method

server { listen 80; server_name www.example.com; location / { proxy_pass https://localhost:8002; proxy_cache mycache; proxy_cache_purge $purge_method; } }

配置完并使之生效之后,就可以發(fā)送一條 purge 請求來讓緩存失效了,例如:

curl -X PURGE -D – https://www.example.com/*

在該示例中,將清除具有公共 URL 部分(由星號通配符指定)的資源。但這些緩存條目不會從緩存中完全刪除:它們會保留在磁盤上,直到它們被視為不活動(由proxy_cache_path 中的 inactive參數(shù)決定)的時候才完全刪除,或緩存清除器(由 proxy_cache_path 中的 purge 決定),或客戶端嘗試訪問它們的時候。

本文最后更新于 2022-10-6 09:48,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號:w17tui,關注站長、創(chuàng)業(yè)、關注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務,與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關注站長網(wǎng)微信

大家都在看

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 欧美午夜理伦三级在线观看 | 日本调教网站 | 一个人看的WWW高清电影 | 高清国产免费观看视频在线 | 红尘影院在线观看 | 中文字幕AV在线一二三区 | 国产人妻人伦精品1国产 | 好大的太粗好深BL | 探花口爆颜射乳交日韩 | 麻1豆传媒2021精品 | 国产 亚洲 中文在线 字幕 | 男人和女人一级黄色大片 | 富婆大保健嗷嗷叫普通话对白 | 欧美日韩国产高清综合二区 | 色婷婷亚洲精品天天综合影院 | 67194免费入口 | 视频一区亚洲视频无码 | 91国在线视频 | 色综合五月激情综合色一区 | 97人摸人人澡人人人超一碰 | 亚洲 自拍 欧洲 视频二区 | 中文字幕成人在线观看 | 久久麻豆亚洲AV成人无码国产 | 午夜男人免费福利视频 | 一级特黄视频 | 啦啦啦影院视频在线看高清... | 小黄鸭YELLOWDUCK7596 | 久久这里只精品热在线18 | 公么我好爽再深一点 | 国产精品成人啪精品视频免费观看 | 国产精品三级在线观看 | 美女脱三角裤 | 鲁大师影院在线视频在线观看 | 国产三级精品三级在线观看 | 日本精品无码久久久久APP | 午夜福利影院私人爽爽 | 午夜免费福利 | 99re久久免费热在线视频手机 | chinese耄耋70老太性 | 久久合| 色一情一乱一伦一区二区三区 |