當前位置:首頁 » 文件管理 » nginx緩存伺服器配置

nginx緩存伺服器配置

發布時間: 2025-07-12 04:37:23

Ⅰ Nginx緩存設置教程

| 這篇文章主要介紹了Nginx緩存設置案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下 |

在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。在常用的緩存設置裡面有兩種方式,都是使用add_header來設置:分別為Cache-Control和Pragma。

對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低伺服器壓力的目的。

以Nginx伺服器為例:

【背景】:Expires是Web伺服器響應消息頭欄位,在響應http請求時告訴瀏覽器在過期時間前瀏覽器可以直接從瀏覽器緩存取數據,而無需再次請求。

【相關資料】

1、Cache-control策略

Cache-Control與Expires的作用一致,都是指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器緩存取數據還是重新發請求到伺服器取數據。只不過Cache-Control的選擇更多,設置更細致,如果同時設置的話,其優先順序高於Expires。

http協議頭Cache-Control :

值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age

各個消息中的指令含義如下:

Last-Modified/If-Modified-Since

其最終達到的就是等效於設置這三類html緩存技術:

Ⅱ Nginx作為靜態資源web服務,控制瀏覽器緩存、防盜鏈,你該如何配置

瀏覽器緩存簡介


遵循HTTP協議的瀏覽器緩存機制包括Expires;Cache-control等。


當瀏覽器無緩存時,請求響應流程直接獲取伺服器內容。


當瀏覽器有緩存時,請求響應流程首先檢查緩存內容,若有效則直接返回,否則請求伺服器。


瀏覽器緩存校驗過期機制遵循時間戳,確保內容及時更新。


Nginx控制瀏覽器緩存配置


通過ngx_http_headers_mole實現控制。


配置「Expires」和「Cache-Control」頭信息,控制頁面緩存。


「Expires」頭信息過期時間由當前系統時間與設定時間相加得到。


「Cache-Control」頭信息的「max-age=time」表示有效期為時間秒。


epoch參數為1970年1月1日00:00:01 GMT,max參數為2037年12月31日23:55:55 GMT,表示有效期10年。


off參數失效「Expires」和「Cache-Control」響應頭信息。


應用實例


編輯/etc/nginx/conf.d/static.conf。


使用nginx -s reload重新載入配置文件。


創建/vagrant/doc/hello.txt文件。


通過curl訪問檢查http響應頭信息,驗證緩存配置。


防盜鏈配置


目的:防止資源被盜用。


思路:識別非正常用戶請求。


基於http_refer防盜鏈配置模塊


none、blocked、server_names和正則表達式等選項定義防盜鏈規則。


none選項忽略Referer欄位。


blocked選項檢查Referer欄位值是否被防火牆或代理伺服器刪除。


server_names選項檢查Referer欄位是否包含伺服器名稱。


正則表達式選項匹配Referer欄位中的特定內容。


應用實例


編輯conf.d/static.conf文件。


使用nginx -s reload重新載入配置文件。


創建/vagrant/doc/hello.txt文件。


使用curl進行訪問測試,驗證防盜鏈配置。

Ⅲ Nginx緩存&優雅清除緩存

Nginx作為高性能的web伺服器,其緩存功能對於提升頁面響應速度和減輕後端壓力至關重要。瀏覽器緩存流程涉及用戶本地存儲,當緩存失效時,Nginx作為緩存伺服器能從web緩存獲取數據。Nginx的緩存配置主要包括以下幾點:


1. Nginx緩存配置



  • proxy_cache和proxy_cache_path: 定義緩存存放路徑和相關參數,如proxy_cache zone默認關閉,而proxy_cache_path用於指定路徑和緩存策略。

  • proxy_cache_valid: 設置緩存有效期,區分緩存過期和刪除,inactive參數決定緩存未訪問的清理時間,proxy_cache_valid則控制緩存時間。

  • proxy_cache_bypass和proxy_no_cache: 分別配置不走緩存和不緩存的條件,如資源更新、緩存使用次數等。


2. Nginx緩存管理


以一個示例說明:配置Nginx緩存伺服器和服務端,通過訪問緩存路徑測試緩存狀態(如初次訪問為MISS,後續為HIT,過期後為EXPIRED)。如果服務端內容變更,需要清除對應緩存,可以使用ngx_cache_purge模塊。


3. Nginx緩存清除


使用ngx_cache_purge模塊可刪除特定緩存,例如訪問/purge/路徑刪除指定緩存。

Ⅳ nginx 緩存機制

Nginx緩存的基本思路
基本思想是利用客戶訪問的時間局部性原理,對客戶已經訪問過的內容在Nginx伺服器本地建立副本,這樣在一段時間內再次訪問該數據,就不需要通過Nginx伺服器再次向後端伺服器發出請求,所以能夠減少Nginx伺服器與後端伺服器之間的網路流量,減輕網路擁塞,同時還能減小數據傳輸延遲,提高用戶訪問速度。同時,當後端伺服器宕機時,Nginx伺服器上的副本資源還能夠回應相關的用戶請求,這樣能夠提高後端伺服器的魯棒性。

對於緩存,我們大概會有以下問題:
(1)緩存文件放在哪兒?
(2)緩存的空間大小是否可以限定?
(3)如何指定哪些請求被緩存?
(4)緩存的有效期是多久?
(5)對於某些請求,是否可以不走緩存?

解決這些問題後,nginx的緩存也就基本配置完成了,下面看詳細配置過程
開啟緩存

要使用緩存,首先要使用 proxy_cache_path 這個指令(必須放在 http 上下文的頂層位置),然後在目標上下文中使用 proxy_cache 指令

配置示例

proxy_cache_path 有兩個必填參數,第一個參數為 緩存目錄,第二個參數keys_zone指定緩存名稱和佔用內存空間的大小(註:示例中的10m是對內存中緩存內容元數據信息大小的限制,如果想限制緩存總量大小,需要用 max_size 參數)

proxy_cache 的參數為之前指定的緩存名稱

緩存管理的相關進程
在緩存工作中有兩個附加進程:
(1)緩存管理器
定期檢查緩存狀態,看緩存總量是否超出限制,如果超出,就移除其中最少使用的部分
(2)緩存載入器
載入器只在nginx啟動後運行一次,把緩存內容的元數據信息載入到內存空間,如果一次性載入全部緩存信息,會大量消耗資源,使nginx在啟動後的幾分鍾里變慢,為避免此問題,有3種載入策略:
loader_threshold – 指定每次載入執行的時間
loader_files – 每次最多載入的數量
loader_sleeps – 每次載入的延時
例如:
proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;
指定緩存哪些請求
nginx默認會緩存所有 get 和 head 方法的請求結果,緩存的key默認使用請求字元串
(1)自定義key
例如 proxy_cache_key " request_uri cookie_nocache arg_comment;
如果任何一個參數值不為空,或者不等於0,nginx就不會查找緩存,直接進行代理轉發
綜合示例

nginx 緩存機制
三分鍾看懂Nginx伺服器的緩存原理和機制

熱點內容
如何用密碼鎖定 發布:2025-07-12 14:39:10 瀏覽:924
軟體發布源碼 發布:2025-07-12 14:29:34 瀏覽:178
sql函數和存儲過程的區別 發布:2025-07-12 14:26:37 瀏覽:29
查看存儲功空間 發布:2025-07-12 14:17:22 瀏覽:941
安卓手機的朗讀功能在哪裡 發布:2025-07-12 14:17:07 瀏覽:298
mysql屬於什麼資料庫 發布:2025-07-12 13:55:52 瀏覽:166
源碼抓捕 發布:2025-07-12 13:47:34 瀏覽:873
安卓哪裡有李小龍 發布:2025-07-12 13:31:49 瀏覽:439
蘋果保存賬號密碼在哪裡找 發布:2025-07-12 13:31:07 瀏覽:99
東北大學c語言考試題 發布:2025-07-12 13:26:40 瀏覽:756