亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Nginx代理緩存機制

發布時間:2021-07-10 10:27:47 來源:億速云 閱讀:126 作者:chen 欄目:大數據

本篇內容介紹了“什么是Nginx代理緩存機制”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. Nginx 緩存簡介


  • nginx 的 http_proxy 模塊,可實現類似于 Squid 的緩存功能。

  • Nginx 對客戶已經訪問過的內容在 Nginx 服務器本地建立副本,這樣在一段時間內再次訪問該數據,就不需要通過 Nginx 服務器再次向后端服務器發出請求,所以能夠減少 Nginx 服務器與后端服務器之間的網絡流量,減輕網絡擁塞,同時還能較小數據傳輸延遲,提高用戶訪問速度。

  • 同時,后端服務器宕機時,Nginx 服務器上的副本資源還能夠回應相關的用戶請求,這樣能夠提高后端服務器的魯棒性(健壯性)。

什么是Nginx代理緩存機制

2. Nginx 緩存


1. 緩存文件放在哪兒?
  • proxy_cache_path:Nginx 使用該參數指定緩存位置。

  • proxy_cache:該參數為之前指定的緩存名稱。

  • proxy_cache_path:有兩個必填參數

    • 第一個參數weight緩存目錄。

    • 第二個參數 keys_zone 指定緩存名稱和占用內存空間的大小。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

http {
    proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;
    
    upstream zp.purple.com {
        server 127.0.0.1:8881;
        server 127.0.0.1:8882;
        server 127.0.0.1:8883;
    }
    
    server {
        listen 80;
        proxy_cache one;
        server_name zp.purple.com;
        
        location / {
            proxy_pass http://zp.purple.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
        }
    }

}
  • 注:示例中的 10m 是對內存中緩存元數據信息大小的限制,如果想限制緩存總量大小,需要用 max_size 參數。

2. 如何指定哪些請求被緩存?
  • Nginx 默認會緩存所有 get 和 head 方法的請求結果,緩存的 key 默認使用請求字符串。

    • 自定義 key:例如 proxy_cache_key "$host$request_uri$cookie_user";

  • 指定請求至少被發送了多少次以上時才緩存,可以防止低頻請求被緩存。

    • 例如 proxy_cache_min_user 5;

  • 指定哪些方法的請求被緩存

    • 例如 proxy_cache_methods GET HEAD POST;

user www-data;
worker_processes auto;
pid /run/nginx.pid;

http {
    proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;
    
    upstream zp.purple.com {
        server 127.0.0.1:8881;
        server 127.0.0.1:8882;
        server 127.0.0.1:8883;
    }
    
    server {
        listen 80;
        proxy_cache one;
        server_name zp.purple.com;
        
        location / {
            proxy_pass http://zp.purple.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_cache_key $host$request_uri$cookie_user;
        }
    }

}
3. 緩存有效期
  • 默認情況下,緩存內容是長期存留的,除非緩存的總量超出限制。可以指定緩存有效時間,例如:

    proxy_cache_valid 200 302 10m;

     

    proxy_cache_valid any 5m;


    • 對任何狀態碼,5 分鐘有效。

    • 響應狀態碼為 200 302 時,10 分鐘有效。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

http {
    proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;
    
    upstream zp.purple.com {
        server 127.0.0.1:8881;
        server 127.0.0.1:8882;
        server 127.0.0.1:8883;
    }
    
    server {
        listen 80;
        proxy_cache one;
        server_name zp.purple.com;
        
        location / {
            proxy_pass http://zp.purple.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_cache_valid 200 302 10m;
        }
    }

}
4. 對于某些請求,是否可以不走緩存?
  • proxy_cache_bypass:該指令響應來自原始服務器而不是緩存。

  • 例如 proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;

  • 如果任何一個參數值不為空,或者不等于 0,nginx 就不會查找緩存,直接進行代理轉發。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

http {
    proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;
    
    upstream zp.purple.com {
        server 127.0.0.1:8881;
        server 127.0.0.1:8882;
        server 127.0.0.1:8883;
    }
    
    server {
        listen 80;
        proxy_cache one;
        server_name zp.purple.com;
        
        location / {
            proxy_pass http://zp.purple.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
        }
    }

}

3. 網頁緩存


  • 網頁的緩存是由 HTTP 消息頭中的“Cache-control”來控制的,常見的取值有 private、no-cache、max-age、must-revalidate 等,默認為 private。其作用根據不同的重新瀏覽方式分為以下幾種情況。

Cache-durective說明
public所有內容都將被緩存(客戶端和代理服務器都可緩存)
private內容只緩存到私有緩存中(僅客戶端可以緩存,代理服務器不可緩存)
no-cache必須先與服務器確認返回的響應是否被更改,然后才能使用該響應來滿足后續對同一個網址的請求。因此,如果存在合適的驗證令牌(ETag),no-cache 會發起往返通信來驗證緩存的響應,如果資源未被修改,可以避免下載。
no-store所有內容都不會被緩存到緩存或 Internet 臨時文件中。
must-revalidation/proxy-revalidation如果緩存的內容失效,請求必須發送到服務器/代理以進行重新驗證
max-age=xxx(xxx is numeric)緩存的內容將在 xxx 秒后失效,這個選項只在 HTTP1.1 可用,并如果和 Last-Modified 一起使用時,優先級較高

“什么是Nginx代理緩存機制”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲靖市| 绥滨县| 延庆县| 遂昌县| 凤台县| 福海县| 简阳市| 长泰县| 宜川县| 高唐县| 怀安县| 仁化县| 木兰县| 海阳市| 河津市| 金乡县| 礼泉县| 昌江| 芮城县| 古田县| 武穴市| 重庆市| 秀山| 谢通门县| 怀仁县| 浑源县| 繁昌县| 磐石市| 麻阳| 麻江县| 武威市| 布尔津县| 桓仁| 田东县| 乐亭县| 台湾省| 宜昌市| 平潭县| 康马县| 沈阳市| 金昌市|