Nginx快取配置指南

2022-08-17 10:27:15 字數 4076 閱讀 5691

開啟簡單的快取配置,只需要兩個指令:proxy_cache_path和proxy_cache。proxy_cache_path配置快取的存放位址和其他的一些常用配置,proxy_cache指令是為了啟動快取。

該指令用於定義滿足條件的響應不會被儲存到快取中。在條件字串中至少有乙個條件不為空或者0,符合這樣條件的響應才不會被快取。舉例如下:

其中,cookie_nocache、arg_nocache...皆為變數,可以根據你訪問的匹配策略來設定,其值只有2類,0和非0;

訪問匹配策略例如:

if ($request_uri ~ ^/(login|register|password\/reset)/)

如果在此鏈式配置中,只要有乙個值不為0,則不會cache;例如:

proxy_no_cache $cookie_nocache(0) $arg_nocache(1) $arg_comment(0)

則不會被cache。`

注:一般會配合proxy_cache_bypass共同使用;

該指令用於定義哪些情況不從cache讀取,直接從backend獲取資源;配置方式同proxy_no_cache。

給快取資料定義乙個鍵,例如

proxy_cache_key 「$host$request_uri $cookie_user」;

預設情況下,該指令的值的字串

該指令用於設定快取哪些http方法,預設快取http get/head方法,不快取http post 方法.。

設定不同響應碼的快取時間,當不指定響應碼的時候,例如

proxy_cache_valid 5m;

只對響應碼為200,301,302的訪問請求資源設定快取時間,此外可以個性化定製,例如:

不快取包含在field的響應header,可以設定的值有:「x-accel-redirect」, 「x-accel-expires」, 「x-accel-limit-rate」,「x-accel-buffering」, 「x-accel-charset」, 「expires」, 「cache-control」, 「set-cookie」 (0.8.44), and 「vary」。

如果上述的header field沒有設定為忽略,則header filed中有「x-accel-expires」, 「expires」, 「cache-control」, 「set-cookie」, and 「vary」的話,響應會被快取。

(7)proxy_cache_min_uses指令

該指令用於設定快取的最小使用次數,預設值為1

(1)proxy_cache_use_stale增強站點容錯能力

源站有問題時,nginx可以通過proxy_cache_use_stale指令開啟容錯能力,即使用快取內容來響應客戶端的請求。舉例如下:

location /

如上配置表示,當作為cache的nginx收到源站返回error、timeout或者其他指定的5xx錯誤,並且在其快取中有請求檔案的陳舊版本,則會將這些陳舊版本的檔案而不是錯誤資訊傳送給客戶端。

(2)多磁碟分割快取

使用nginx,不需要建立乙個raid(磁碟陣列)。如果有多個硬碟,nginx可以用來在多個硬碟之間分割快取。舉例如下:

# 我們假設每塊硬碟掛載在相應的目錄中:/mnt/disk1、/mnt/disk2、/mnt/disk3

proxy_cache_path /mnt/disk1 levels=1:2 keys_zone=cache_1:256m max_size=1024g use_temp_path=off;

proxy_cache_path /mnt/disk2 levels=1:2 keys_zone=cache_2:256m max_size=1024g use_temp_path=off;

proxy_cache_path /mnt/disk3 levels=1:2 keys_zone=cache_3:256m max_size=1024g use_temp_path=off;

split_clients $request_uri $disk 

location /

在這份配置中,使用了3個獨立的快取,每個快取專用一塊硬碟,另外,3個獨立的執行緒池也各自專用一塊硬碟。

快取之間(其結果就是磁碟之間)的負載均衡使用split_clients模組,split_clients非常適用於這個任務。

在 proxy_cache_path指令中設定use_temp_path=off,表示nginx會將臨時檔案儲存在快取資料的同一目錄中。這是為了避免在更新快取時,磁碟之間互相複製響應資料。

Nginx配置指南

對nginx的學習並不多,但使用起來特別順手且心中莫名放心,本文分享乙份自己的nginx配置,並選擇其中的一些配置項做些說明。nginx配置檔案預設存放在 etc nginx nginx.conf,裡面主要是http上下文的配置內容,而server等內容常被拆分成子檔案通過include引入,以下是...

Nginx 快取配置

之前講過nginx的正向 和反向 但是對於我們yum源 這肯定是不夠的,最好是要能快取資源。畢竟yum源的東西大部分都是靜態資源,不會改變,如果能快取這些資源,不僅能加快使用者對資源的獲取,另一方面也減少了出口流量和頻寬。這其實也就是cdn的初衷了。接下來就來說說nginx的快取配置。不多說,直接上...

Nginx 快取配置

header 說明expires 快取過期的日期和時間 cache control 設定和快取相關的配置資訊 last modified 請求資源最後修改時間 etag 請求變數的實體標籤的當前值,比如檔案的md5值 1 使用者首次通過瀏覽器傳送請求到服務端獲取資料,客戶端是沒有對應的快取,所以需要...