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+Windows搭建域名訪問環(huán)境的操作方法
這篇文章主要介紹了Nginx搭建域名訪問環(huán)境,包括nginx配置文件的相關(guān)介紹及對nginx配置文件的分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03

