<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      nginx緩存加速筆記

      1 服務端緩存原理

      主要是緩存代理的后端服務器
      proxy_cache 運用局部性的原理,備存一些先前被訪問過、料將被再度使用的資源,使用戶得以由前端服務器直接取得,從而減少后端服務器的資源開銷,并緩解整個系統的壓力。緩存也是反代的用途之一。本文介紹 Nginx 基本的緩存配置。

      1.1 定義一個緩存目錄

      路徑為 /usr/local/nginx/cache;采用二級的目錄結構;建立一塊用于存放緩存鍵 (cache keys) 和元數據 (metadata) 的共享內存區,名叫 “the_cache_zone” 且分配 10MB 的內存;不活躍的緩存文件 1 小時后將被清除;緩存所占磁盤空間的上限是 512MB;不另設臨時目錄。

      http {
          ...
          proxy_cache_path /tmp/my_cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=500m;
          #proxy_cache_path /tmp/my_cache levels=1:2 keys_zone=the_cache_zone:10m inactive=1h max_size=512m use_temp_path=off;
          ...
      }
      

      1.2 啟用緩存

      方便除錯計,添加一響應頭用以指示緩存狀態 (MISS / BYPASS / HIT …)。

      下列指令請斟酌——
      proxy_cache_bypass 用于指定忽略緩存的情況,當其值為空或為零時,使用緩存。
      proxy_cache_key 用于生成緩存鍵,區分不同的資源。要特別留心 Query String。
      proxy_cache_min_uses 則規定緩存門檻,請求過多少次才緩存,不緩存低頻請求,避免浪費。

      在下例中,$is_args 反映請求的 URI 是否帶參數(網址中問號后面那一長串),若沒有即為空值。$request_uri 近似于 $uri$is_args$args。key 是決定緩存命中率的因素之一。

              location /es {
                  proxy_cache_key $request_uri;
                  add_header X-Cache-Status $upstream_cache_status;
                  proxy_cache cache_one;
                  proxy_cache_valid any 5m;
                  proxy_http_version 1.1;
                  proxy_set_header   Host             $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                  proxy_pass http://192.168.2.222:9200/; 
              }
      location / {
          ...
          proxy_pass http://www.example.com;
      
          proxy_cache the_cache_zone;
          #           proxy_cache_bypass $is_args;
          # (default) proxy_cache_key $scheme$proxy_host$request_uri;
          #           proxy_cache_min_uses 3;
          
          add_header X-Cache-Status $upstream_cache_status;
          ...
      }
      

      1.3 Nginx 作反代

      nginx相對來說也是客戶端若希望抓取的源站內容總是新鮮,還需要忽略上游的緩存期限,即不遵循源站的 Cache-ControlExpires 等響應頭,然后再來配置自己的緩存期限。

      服務端一側,proxy_cache_valid 控制的是 expiration (有效期),針對不同的 HTTP 狀態碼可以設定不同的有效期。inactive 決定的是 retention (保留期限),時間一到管你新不新鮮都要丟掉 (refresh)。可以理解為 inactive 要優位于 proxy_cache_valid

      proxy_cache_revalidate 將對客戶端傳來之 Etag 或 Last-Modified 作出驗證,若服務端資源沒有變化,則使用“稍早前”緩存頁面,無論其有效期為何。有助減少回源次數。

      location / {
          ...
          proxy_ignore_headers X-Accel-Expires Cache-Control Expires;
      
          proxy_cache_valid 301 1h;
          proxy_cache_valid 200 30m;
          proxy_cache_valid any 1m;
          proxy_cache_revalidate on;
          ...
      }
      

      1.4 緩存一時爽,全家火葬場。

      一大波緩存同時失效,會導致緩存雪崩 (Cache stampede),使得大批請求涌向源站。如果網站不是特別大、并發要求不是特別高,可以采取加鎖排隊和暫時返回陳舊數據的方式緩解問題。但根本的還是要各別設定緩存期限,錯峰更新緩存,不要一窩蜂。

      proxy_cache_lock 對同一資源,未命中一次只回源一次,阻塞后續請求直至當前請求完成。
      proxy_cache_lock_age “不能者止”,如果當前請求未能如期完成,就放行后續請求。
      proxy_cache_lock_timeout 發生超時,同樣放行,但不作緩存。
      proxy_cache_use_stale 則是指定“共體時艱”的情境,比如服務器正在更新 (updating) 緩存的時候,或者遭遇 503 服務不可用錯誤的時候,勉予使用 (inactive 還未清理的) 過期緩存,以保持可用性。
      proxy_cache_background_update 返回陳舊數據時,也跟源站要一份新鮮的,下次用。

      location / {
          ...
          proxy_cache_lock on;
          # (default) proxy_cache_lock_age 5s;
          # (default) proxy_cache_lock_timeout 5s;
      
          proxy_cache_use_stale error timeout updating http_503;
          proxy_cache_background_update on;
          ...
      }
      

      1.5 ngx_cache_purge

      倘若有手動清除緩存的需求,又用不起 NGINX Plus,不妨考慮 ngx_cache_purge

      下載源碼、nginx -V 檢視參數、追加參數 --add-module=../ngx_cache_purge-2.3 且重新編譯 Nginx,以完成添加模塊的動作。

      proxy_cache_purge 得回頭看前面的配置,使用的緩存路徑與 proxy_cache 的對應、緩存鍵向 proxy_cache_key 的看齊。URI 前面加上 /purge 即為清除緩存接口(最好不要被外部訪問)。

      location / {
          ...
          proxy_cache the_cache_zone;
          proxy_cache_key $scheme$proxy_host$request_uri;
          ...
      }
      
      location ~ /purge(/.*) {
          ...
          allow 127.0.0.1;
          deny all;
          proxy_cache_purge the_cache_zone $scheme$proxy_host$1$is_args$args;
          ...
      }
      
      posted @ 2021-12-09 14:52  聽_風~  閱讀(468)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲男女羞羞无遮挡久久丫 | 精品一区二区免费不卡| 国产精品一区二区三区av| 深夜视频国产在线观看| 精品人妻伦一二三区久久aaa片| 化德县| 性做久久久久久久久| 乌克兰美女浓毛bbw| 少妇被粗大的猛烈进出视频| 一边吃奶一边做动态图| 邵阳市| 日本精品不卡一二三区 | 日本毛茸茸的丰满熟妇| 永久免费无码成人网站| 亚洲中文字幕人妻系列| 国产午夜精品久久精品电影| 少妇人妻精品无码专区视频| 精品综合一区二区三区四区| 2018av天堂在线视频精品观看 | 国产成人久久综合第一区| 宅男久久精品国产亚洲av麻豆| 国产成人精品一区二区三区免费 | 伊人久久大香线蕉AV网禁呦| 人妻丰满熟妇av无码区| 啪啪av一区二区三区| 中文无码妇乱子伦视频| 亚洲精品中文字幕二区| 福利一区二区1000| 亚洲av成人无码天堂| 日本熟妇乱一区二区三区| 国产午夜三级一区二区三| 亚洲成女人图区一区二区| 黑人玩弄人妻中文在线| 日日碰狠狠躁久久躁96avv| 中文文字幕文字幕亚洲色| 亚洲AVAV天堂AV在线网阿V| 色吊丝一区二区中文字幕| 中文字幕日韩精品无码内射| 久久夜色撩人国产综合av| 老熟妇高潮一区二区三区| 国产亚洲av产精品亚洲|