LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Nginx緩存最全詳解:如何提高10倍性能!

admin
2025年6月28日 20:26 本文熱度 780

Nginx是大型架構的必備中間件,下面我就重點來詳解Nginx緩存核心技術@mikechen

Nginx緩存

Nginx 緩存:是指 Nginx 服務器將客戶端請求的資源(例如:靜態文件、動態頁面的響應。。。等)存儲在本地存儲介質(如磁盤或內存)中。

當相同的請求再次到達時,Nginx 可以直接從緩存中提供資源,而無需再次向后端服務器發起請求。

這種緩存可以顯著提高網站的訪問速度和可用性,尤其是在處理靜態資源或不經常變化的內容時。

通過緩存,Nginx可以直接從本地返回數據,而不需要每次都向后端服務器請求,從而減輕網絡負載和后端服務器的壓力。

 

Nginx緩存工作原理

Nginx支持多種緩存機制,適用于不同場景,以下是主要類型:

反向代理緩存

Nginx作為反向代理緩存,將從后端服務器(如應用服務器)獲取的內容緩存到本地。

對于后續相同請求,Nginx直接返回緩存內容,無需請求后端服務器。

典型場景:常見于大流量網站,需要快速返回常訪問的靜態資源或動態頁面。

內容緩存(Content Cache)

Nginx可以緩存內容本身(如HTTP響應),減少對后端的請求,提高響應速度。

典型場景:緩存接口數據、或動態頁面的生成內容。

靜態文件緩存

Nginx通常用于緩存靜態資源,如圖片、CSS文件、JavaScript文件等。

典型場景:通過長時間緩存靜態文件,減少靜態文件的重復請求,提高網站響應速度。

FastCGI緩存

對于使用FastCGI協議的動態內容,Nginx也支持緩存,這對于PHP、Python、Ruby等后端應用程序非常有用。

典型場景:緩存動態生成的HTML頁面,減少對FastCGI服務器的負擔。

其工作原理如下:

客戶端發起請求

客戶端發送一個 HTTP 請求到 Nginx。

Nginx 接收請求

Nginx 接收到客戶端的請求,并根據配置進行處理。

檢查緩存: 對于需要代理的請求,Nginx 首先會根據配置的 proxy_cache_key 生成一個緩存 Key,并在配置的緩存區域中查找是否存在與該 Key 匹配的緩存條目。

緩存命中 (Cache Hit):

如果找到匹配的緩存條目,并且緩存尚未過期(根據 proxy_cache_valid 等指令判斷),Nginx 會直接從緩存中讀取響應內容,并將其發送給客戶端,而不會將請求轉發給后端服務器。

緩存未命中 (Cache Miss):

如果沒有找到匹配的緩存條目,或者緩存已過期,Nginx 會將客戶端的請求轉發給配置的后端服務器(通過 proxy_pass)。

后端服務器處理請求并返回響應: 后端服務器處理客戶端的請求,并將生成的響應返回給 Nginx。

緩存響應 

Nginx 接收到后端服務器的響應后,會根據配置判斷是否需要將該響應緩存到本地。

如果滿足緩存條件(例如 HTTP 方法是 GET 或 HEAD,響應狀態碼在 proxy_cache_valid 指定的范圍內),Nginx 會將響應內容存儲到緩存區域中,并使用之前生成的緩存 Key 進行標識。

將響應返回給客戶端

無論是從緩存中獲取的響應還是從后端服務器獲取的響應(并可能已緩存),Nginx 最終都會將響應發送回客戶端。

 

Nginx緩存實戰案例

1.靜態資源緩存

為了減少對靜態文件的重復請求,我們可以設置Nginx緩存這些靜態資源。

  1. location ~* \.(jpg|jpeg|png|gif|css|js|ico|woff|woff2|ttf|eot|svg|otf){
  2.     expires 30d;
  3.     add_header Cache-Control"public";
  4.     access_log off;
  5. }

 

2.商品頁面緩存

對于商品頁面,可以緩存一部分動態內容,如價格和評論數量,以提高響應速度并減少對后端的壓力。

  1. location /product/{
  2.     proxy_cache cache_zone;
  3.     proxy_cache_key $uri;
  4.     proxy_cache_valid 20010m;
  5.     proxy_cache_valid 4041m;
  6.     proxy_cache_use_stale error timeout updating;
  7. }

通過proxy_cache_valid 200 10m配置,緩存200狀態碼的響應10分鐘,避免頻繁訪問后端獲取相同數據。

 

3.API響應緩存

對于電商網站的API接口,可能會有一些數據變化不頻繁,可以進行緩存。

  1. location /api/{
  2.     proxy_cache cache_zone;
  3.     proxy_cache_valid 2005m;
  4.     proxy_cache_use_stale error timeout updating;
  5. }

通過上述緩存策略,Nginx幫助電商網站提高了性能,減少了后端負擔,提升了用戶的訪問速度和體驗。


閱讀原文:原文鏈接


該文章在 2025/7/2 0:39:36 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲欧美日本一区二区三区 | 亚洲无aV码在线中文字幕 | 亚洲天码中字一区 | 中文字幕日产乱码乱偷在线 | 一本久久亚洲综合久久 | 色婷婷视频一区二区三区 |