nginx配置文件不使用緩存的方法
前言
使用緩存的優(yōu)點在于減少數(shù)據(jù)傳輸,節(jié)省網(wǎng)絡(luò)流量,加快響應(yīng)速度;減輕服務(wù)器壓力;提供服務(wù)端的高可用性;缺點在于數(shù)據(jù)的不一致問題;增加成本
Nginx作為Web緩存服務(wù)器,介于客戶端和應(yīng)用服務(wù)器之間,當(dāng)用戶通過瀏覽器訪問一個URL時,web緩存服務(wù)器會去應(yīng)用服務(wù)器獲取要展示給用戶的內(nèi)容,將內(nèi)容緩存到自己的服務(wù)器上,當(dāng)下一次請求到來時,如果訪問的是同一個URL,web緩存服務(wù)器就會直接將之前緩存的內(nèi)容返回給客戶端
1. web緩存服務(wù)
1.1 原理
Nginx的web緩存服務(wù)主要是使用ngx_http_proxy_module模塊,其基于Proxy Store來實現(xiàn),其原理是把URL及相關(guān)組合當(dāng)做Key,在使用MD5算法對Key進(jìn)行哈希,得到硬盤上對應(yīng)的哈希目錄路徑,從而將緩存內(nèi)容保存在該目錄中。它可以支持任意URL連接,同時也支持404/301/302這樣的非200狀態(tài)碼。Nginx即可以支持對指定URL或者狀態(tài)碼設(shè)置過期時間,也可以使用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: 指定該緩存空間對應(yīng)的目錄,最多可以設(shè)置3層,每層取值為1|2(MD5加密后的密文從后往前取值1到2個字符)
- keys_zone:用來為這個緩存區(qū)設(shè)置名稱和指定大小
- inactive:指定緩存的數(shù)據(jù)多次時間未被訪問就將被刪除
- max_size:設(shè)置最大緩存空間,如果緩存空間存滿,默認(rèn)會覆蓋緩存時間最長的資源
實例:
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
開啟或關(guān)閉代理緩存,如果是開啟則自定使用哪個緩存區(qū)來進(jìn)行緩存
1.2.3 proxy_cache_key
設(shè)置web緩存的key值,Nginx會根據(jù)key值MD5哈希存緩存
1.2.4 proxy_cache_valid
對不同返回狀態(tài)碼的URL設(shè)置不同的緩存時間
1.2.5 proxy_cache_min_uses
設(shè)置資源被訪問多少次后被緩存
1.2.6 proxy_cache_methods
設(shè)置緩存哪些HTTP方法
2. 緩存案例
在http塊中設(shè)置
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 刪除對應(yīng)的緩存目錄
rm -rf /usr/local/proxy_cache
3.2 使用第三方擴(kuò)展模塊ngx_cache_purge,并使用proxy_cache_purge指令
4. 設(shè)置資源不緩存
4.1 proxy_no_cache
定義不將數(shù)據(jù)進(jìn)行緩存的條件
示例:
proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
4.2 proxy_cache_bypass
設(shè)置不從緩存中獲取數(shù)據(jù)的條件
示例:
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
$cookie_nocache指當(dāng)前請求的cookie中鍵的名稱為nocache對應(yīng)的值
$arg_nocache和$arg_comment指的是當(dāng)前請求的參數(shù)中屬性名為nocache和comment對應(yīng)的屬性值
至少有一個不為空且不等于0,則條件滿足成立
4.3 設(shè)置不緩存資源的配置方案
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; } }
到此這篇關(guān)于nginx配置文件不使用緩存的方法的文章就介紹到這了,更多相關(guān)nginx 文件不使用緩存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx使用mirror指令實現(xiàn)接口復(fù)制
Nginx中使用mirro指令可以方便地實現(xiàn)接口請求的復(fù)制,這個功能非常適合用于流量監(jiān)控、數(shù)據(jù)收集或負(fù)載均衡,下面我們就來看看具體的用法吧2024-10-10nginx中配置使用proxy?protocol協(xié)議的全過程
proxy protocol是一個Internet協(xié)議,通過為tcp添加一個很小的頭信息,來方便的傳遞客戶端信息,在網(wǎng)絡(luò)情況復(fù)雜又需要獲取用戶真實IP時非常有用,這篇文章主要給大家介紹了關(guān)于nginx中配置使用proxy?protocol協(xié)議的相關(guān)資料,需要的朋友可以參考下2022-04-04Nginx+Tomcat的服務(wù)器端環(huán)境配置詳解
這篇文章主要介紹了Nginx+Tomcat的服務(wù)器端環(huán)境配置詳解,包括Nginx與Tomcat的監(jiān)控開啟方法,需要的朋友可以參考下2015-12-12Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪問跳轉(zhuǎn)Https)
這篇文章主要為大家介紹了Http訪問強(qiáng)制跳轉(zhuǎn)到Https的幾種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10nginx報錯connect() failed(111: Connection refus
本文主要介紹了nginx報錯connect() failed(111: Connection refused)while connecting to upstream解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06