nginx配置文件不使用緩存的方法
前言
使用緩存的優(yōu)點在于減少數(shù)據(jù)傳輸,節(jié)省網絡流量,加快響應速度;減輕服務器壓力;提供服務端的高可用性;缺點在于數(shù)據(jù)的不一致問題;增加成本
Nginx作為Web緩存服務器,介于客戶端和應用服務器之間,當用戶通過瀏覽器訪問一個URL時,web緩存服務器會去應用服務器獲取要展示給用戶的內容,將內容緩存到自己的服務器上,當下一次請求到來時,如果訪問的是同一個URL,web緩存服務器就會直接將之前緩存的內容返回給客戶端
1. web緩存服務
1.1 原理
Nginx的web緩存服務主要是使用ngx_http_proxy_module模塊,其基于Proxy Store來實現(xiàn),其原理是把URL及相關組合當做Key,在使用MD5算法對Key進行哈希,得到硬盤上對應的哈希目錄路徑,從而將緩存內容保存在該目錄中。它可以支持任意URL連接,同時也支持404/301/302這樣的非200狀態(tài)碼。Nginx即可以支持對指定URL或者狀態(tài)碼設置過期時間,也可以使用purge命令來手動清除指定URL的緩存
1.2 指令
1.2.1 proxy_cache_path
語法:
proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time][max_size=size];
- path:緩存路徑地址
- levels: 指定該緩存空間對應的目錄,最多可以設置3層,每層取值為1|2(MD5加密后的密文從后往前取值1到2個字符)
- keys_zone:用來為這個緩存區(qū)設置名稱和指定大小
- inactive:指定緩存的數(shù)據(jù)多次時間未被訪問就將被刪除
- max_size:設置最大緩存空間,如果緩存空間存滿,默認會覆蓋緩存時間最長的資源
實例:
http { proxy_cache_path /usr/local/proxy_cache keys_zone=cz:200m levels=1:2:1 inactive=1d max_size=20g; }
1.2.2 proxy_cache
開啟或關閉代理緩存,如果是開啟則自定使用哪個緩存區(qū)來進行緩存
1.2.3 proxy_cache_key
設置web緩存的key值,Nginx會根據(jù)key值MD5哈希存緩存
1.2.4 proxy_cache_valid
對不同返回狀態(tài)碼的URL設置不同的緩存時間
1.2.5 proxy_cache_min_uses
設置資源被訪問多少次后被緩存
1.2.6 proxy_cache_methods
設置緩存哪些HTTP方法
2. 緩存案例
在http塊中設置
proxy_cache_path /usr/local/proxy_cache keys_zone=cz:200m levels=1:2:1 inactive=1d max_size=20g;
server { listen 12305; location ~* .\.(png|jpg|css|html|js)$ { proxy_cache cz; proxy_cache_key $scheme$proxy_host$request_uri; proxy_cache_min_uses 1; proxy_cache_valid 200 1d; proxy_cache_valid any 1m; add_header nginx-cache "$upstream_cache_status"; proxy_pass http://172.18.25.50:12306; } } server { listen 12306; location ^~ /bdosp { alias /mnt/disk1/home/ZLQ_YL/myUI/bdops_ui/bdopsDist/bdosp; index index.html index.htm; } }
3. 緩存的清除
3.1 刪除對應的緩存目錄
rm -rf /usr/local/proxy_cache
3.2 使用第三方擴展模塊ngx_cache_purge,并使用proxy_cache_purge指令
4. 設置資源不緩存
4.1 proxy_no_cache
定義不將數(shù)據(jù)進行緩存的條件
示例:
proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
4.2 proxy_cache_bypass
設置不從緩存中獲取數(shù)據(jù)的條件
示例:
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
$cookie_nocache指當前請求的cookie中鍵的名稱為nocache對應的值
$arg_nocache和$arg_comment指的是當前請求的參數(shù)中屬性名為nocache和comment對應的屬性值
至少有一個不為空且不等于0,則條件滿足成立
4.3 設置不緩存資源的配置方案
server{ listen 8080; server_name localhost; location / { if ($request_uri ~ /.*\.js$){ set $nocache 1; } proxy_no_cache $nocache $cookie_nocache $arg_nocache $arg_comment; proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment; } }
到此這篇關于nginx配置文件不使用緩存的方法的文章就介紹到這了,更多相關nginx 文件不使用緩存內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nginx中配置使用proxy?protocol協(xié)議的全過程
proxy protocol是一個Internet協(xié)議,通過為tcp添加一個很小的頭信息,來方便的傳遞客戶端信息,在網絡情況復雜又需要獲取用戶真實IP時非常有用,這篇文章主要給大家介紹了關于nginx中配置使用proxy?protocol協(xié)議的相關資料,需要的朋友可以參考下2022-04-04nginx報錯connect() failed(111: Connection refus
本文主要介紹了nginx報錯connect() failed(111: Connection refused)while connecting to upstream解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06