亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Nginx 緩存系統(tǒng) proxy_cache工作原理解析

 更新時間:2024年12月12日 10:42:54   作者:學堂在線  
Nginx 的 proxy_cache 模塊允許 Nginx 作為反向代理服務器時緩存后端服務器的響應,本文給大家介紹Nginx 緩存系統(tǒng) proxy_cache的工作原理,感興趣的朋友跟隨小編一起看看吧

系列文章目錄

提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加
例如:第一章 Python 機器學習入門之pandas的使用

提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

前言

Nginx 的 proxy_cache 模塊是 Nginx 代理功能的一部分,它允許 Nginx 緩存來自后端服務器的響應,以便在后續(xù)的請求中可以直接從緩存中提供內容,而無需再次向后端服務器請求。這種機制可以顯著提高靜態(tài)內容的響應速度,減輕后端服務器的負載,并提高網(wǎng)站的可擴展性。

功能特點

減少后端負載:通過緩存靜態(tài)內容,減少對后端服務器的請求,降低負載。
提高響應速度:緩存的內容可以快速響應后續(xù)相同的請求,提高用戶體驗。
靈活的緩存策略:可以根據(jù)不同的 HTTP 響應狀態(tài)碼設置不同的緩存有效期。
緩存控制:提供了豐富的指令來控制哪些請求可以被緩存,哪些請求應該繞過緩存。

proxy_cache工作原理

Nginx 的 proxy_cache 模塊允許 Nginx 作為反向代理服務器時緩存后端服務器的響應。以下是 proxy_cache 模塊的工作原理:

  • 請求到達:客戶端向 Nginx 發(fā)送請求。
  • 緩存查找:Nginx 首先檢查請求是否命中緩存。這是通過查找共享內存中的緩存鍵(由 proxy_cache_key 定義)來完成的。
  • 緩存命中:如果請求命中緩存,Nginx 直接從緩存中讀取響應并返回給客戶端。
  • 緩存未命中:如果請求未命中緩存,Nginx 將請求轉發(fā)到后端服務器。
  • 后端響應:后端服務器處理請求并返回響應給 Nginx。
  • 緩存存儲:Nginx 將后端服務器的響應存儲在本地文件系統(tǒng)中,同時在共享內存中更新緩存鍵和元數(shù)據(jù)。
  • 返回響應:Nginx 將后端服務器的響應返回給客戶端,并根據(jù) proxy_cache_valid 指令設置的規(guī)則決定緩存時間。

示意圖

+--------+     +---------+     +-----------+     +----------+
| 客戶端  | --> |   Nginx  | --> | 后端服務器 | --> |   Nginx   |
|         |--> |  (查找緩存) |     |           | <-- |  (返回    |
|         |    |  (緩存命中) |     |           |     |  響應)   |
|         |    |  (緩存未命中) |     |           |     +----------+
+---+----+    +---------+     +-----+---+---+
    |                |              |
    |                |              | (緩存存儲)
    |                |              |
    +----------------+--------------+

配置文件示例

# 定義 http 塊,Nginx 的主要配置都在這個塊內
http {
    # 設置緩存路徑及其參數(shù)
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=7d use_temp_path=off;
    # levels 定義緩存目錄的層級,1:2 表示兩層
    # keys_zone 定義緩存鍵和大小,my_cache:10m 表示名稱為 my_cache,大小為 10MB
    # max_size 控制緩存區(qū)域的最大磁盤空間,這里設置為 10GB
    # inactive 定義緩存數(shù)據(jù)在指定時間內未被訪問則自動清除的時間,這里設置為 7 天
    # use_temp_path 設置為 off,表示緩存文件直接寫到 cache 中而不使用 temp_path,避免文件拷貝導致影響性能
    # 定義 server 塊,用于監(jiān)聽 80 端口并處理對 example.com 的請求
    server {
        # 監(jiān)聽 80 端口
        listen 80;
        # 設置服務器名,這里為 example.com
        server_name example.com;
        # 定義 location 塊,用于處理根路徑下的請求
        location / {
            # 將請求代理到后端服務器,這里為 http://backend
            proxy_pass http://backend;
            # 啟用緩存,并指定緩存區(qū)域為 my_cache
            proxy_cache my_cache;
            # 設置緩存鍵,這里包括請求方法、主機和請求 URI
            proxy_cache_key "$request_method$host$request_uri";
            # 設置不同 HTTP 狀態(tài)碼的緩存有效期,200 和 302 狀態(tài)碼的響應緩存 10 分鐘
            proxy_cache_valid 200 302 10m;
            # 設置 404 狀態(tài)碼的響應緩存 1 分鐘
            proxy_cache_valid 404 1m;
            # 定義條件跳過緩存,如果請求中包含 no_cache 參數(shù)或特定的 HTTP 頭,則不使用緩存
            proxy_cache_bypass $cookie_no_cache $arg_no_cache$http_pragma$http_authorization;
            # 定義條件不緩存響應,如果請求中包含 no_cache 參數(shù)或特定的 HTTP 頭,則不緩存響應
            proxy_no_cache $cookie_no_cache $arg_no_cache$http_pragma$http_authorization;
        }
    }
}

這段配置注釋詳細解釋了 Nginx 配置文件中的每個指令和它們的參數(shù),以便更好地理解配置文件的作用和行為。

參數(shù)詳盡說明

  • proxy_cache_path:定義緩存文件存儲路徑和參數(shù)。
    • levels:定義緩存目錄的層級。
    • keys_zone:定義共享內存中用于緩存鍵的區(qū)域。
    • max_size:定義緩存的最大磁盤空間。
    • inactive:定義緩存數(shù)據(jù)在指定時間內未被訪問則自動清除的時間。
    • use_temp_path:定義是否使用臨時路徑。
  • proxy_cache:啟用緩存并指定緩存區(qū)域。
  • proxy_cache_key:定義緩存的鍵,用于識別緩存數(shù)據(jù)。
  • proxy_cache_valid:為不同的響應狀態(tài)碼設置緩存時間。

proxy_cache_bypassproxy_no_cache:定義條件跳過緩存和避免緩存特定響應。

性能優(yōu)化方案

  • 緩存策略優(yōu)化:合理配置 proxy_cache_valid 指令,為不同的響應狀態(tài)碼設置不同的緩存時間。
  • 緩存空間管理:通過 proxy_cache_path 指令合理設置緩存空間的大小和有效期。
  • 緩存鍵優(yōu)化:使用 proxy_cache_key 指令定制緩存鍵,減少緩存沖突,提高緩存命中率。
  • 緩存鎖定:通過 proxy_cache_lockproxy_cache_lock_timeout 指令,控制同時對同一緩存項的請求,減少對后端的并發(fā)請求。
  • 使用 CDN:結合 CDN 使用 Nginx 緩存,可以將靜態(tài)資源緩存到離用戶更近的節(jié)點。
  • 監(jiān)控和調整:定期監(jiān)控緩存命中率和響應時間,根據(jù)實際情況調整緩存配置。

總結

通過以上配置和優(yōu)化方案,可以有效地管理 Nginx 的緩存行為,提高網(wǎng)站的性能,同時保證敏感或動態(tài)數(shù)據(jù)的實時性和安全性。

到此這篇關于Nginx 緩存系統(tǒng) proxy_cache詳解的文章就介紹到這了,更多相關Nginx 緩存系統(tǒng) proxy_cache內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Nginx-rtmp實現(xiàn)直播媒體實時流效果

    Nginx-rtmp實現(xiàn)直播媒體實時流效果

    這篇文章主要介紹了Nginx-rtmp實現(xiàn)直播媒體實時流效果,文中給出了總體設計圖,為了整合平臺,會自建RTMP流媒體服務器和使用云廠商SaaS的RTMP流媒體服務,需要的朋友可以參考下
    2018-08-08
  • Nginx反向代理websocket配置實例

    Nginx反向代理websocket配置實例

    這篇文章主要介紹了Nginx反向代理websocket配置實例,本文是項目需求配置成功后的總結,需要的朋友可以參考下
    2014-09-09
  • 圖文詳解nginx日志切割的實現(xiàn)

    圖文詳解nginx日志切割的實現(xiàn)

    這篇文章主要給大家介紹了關于nginx日志切割實現(xiàn)的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Nginx實現(xiàn)基于請求頭的訪問控制配置的示例

    Nginx實現(xiàn)基于請求頭的訪問控制配置的示例

    在Nginx中,可以使用"allow"和"deny"指令來實現(xiàn)IP訪問限制,本文給大家介紹Nginx實現(xiàn)基于請求頭的訪問控制配置,感興趣的朋友一起看看吧
    2023-11-11
  • nginx服務器的下載安裝與使用詳解

    nginx服務器的下載安裝與使用詳解

    這篇文章主要介紹了nginx服務器的下載安裝與使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 詳解nginx過濾url實現(xiàn)前臺js的配置問題

    詳解nginx過濾url實現(xiàn)前臺js的配置問題

    本篇文章主要介紹了nginx過濾url實現(xiàn)前臺js的配置問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • nginx-rtmp-module構建流媒體直播服務器實戰(zhàn)指南

    nginx-rtmp-module構建流媒體直播服務器實戰(zhàn)指南

    本文主要介紹了nginx-rtmp-module構建流媒體直播服務器實戰(zhàn)指南,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • Nginx中的主要應用場景解讀

    Nginx中的主要應用場景解讀

    這篇文章主要介紹了Nginx中的主要應用場景解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 深入了解Nginx auth_request

    深入了解Nginx auth_request

    描述:nginx-auth-request-module模塊用于實現(xiàn)權限控制攔截,通過配置可以實現(xiàn)多個站點之間的統(tǒng)一權限控制,下面就來介紹一下,感興趣的可以了解一下
    2024-12-12
  • nginx配置ssl證書實現(xiàn)https訪問的示例

    nginx配置ssl證書實現(xiàn)https訪問的示例

    這篇文章主要介紹了nginx配置ssl證書實現(xiàn)https訪問的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03

最新評論