開啟簡單的快取配置,只需要兩個指令: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/disk3proxy_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 $disklocation /
在這份配置中,使用了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 使用者首次通過瀏覽器傳送請求到服務端獲取資料,客戶端是沒有對應的快取,所以需要...