溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nginx中怎么實(shí)現(xiàn)網(wǎng)頁(yè)緩存防篡改

發(fā)布時(shí)間:2021-08-09 14:43:15 來(lái)源:億速云 閱讀:815 作者:Leah 欄目:網(wǎng)絡(luò)管理

nginx中怎么實(shí)現(xiàn)網(wǎng)頁(yè)緩存防篡改,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

簡(jiǎn)介

使用網(wǎng)站防篡改對(duì)指定的敏感頁(yè)面設(shè)置緩存,緩存后即使源站頁(yè)面內(nèi)容被惡意篡改,WAF也會(huì)向訪問(wèn)者返回預(yù)先緩存好的頁(yè)面內(nèi)容,確保用戶看到正確的頁(yè)面。

啟用 網(wǎng)頁(yè)防篡改、敏感信息防泄露開關(guān),才能使用該功能。

nginx中怎么實(shí)現(xiàn)網(wǎng)頁(yè)緩存防篡改

填寫精確的要防護(hù)的路徑,可以防護(hù)該路徑下的text、html和圖片等內(nèi)容。

緩存用戶配置的url的頁(yè)面,到openresty。每次處理用戶請(qǐng)求,從nginx緩存獲取頁(yè)面。

配置的url頁(yè)面在nginx.conf--->http--->server--->local,local中設(shè)置緩存配置,根據(jù)自身業(yè)務(wù)特點(diǎn)設(shè)置緩存10~30天不等。

若被保護(hù)的頁(yè)面更新,手動(dòng)觸發(fā)更新緩存至最新的頁(yè)面。

即設(shè)置的url對(duì)應(yīng)的頁(yè)面,緩存中始終與real server對(duì)應(yīng)的頁(yè)面,保持同步,即使real server的頁(yè)面被篡改。

用戶請(qǐng)求的頁(yè)面來(lái)自于openresty緩存。

經(jīng)過(guò)大量測(cè)試發(fā)現(xiàn):對(duì)緩存的過(guò)期與清除起作用的因素的優(yōu)先級(jí)從高到低一次為:

inactive配置項(xiàng)、源服務(wù)器設(shè)置的Expires、源服務(wù)器設(shè)置的Max-Age、proxy_cache_valid配置項(xiàng)

網(wǎng)頁(yè)緩存實(shí)現(xiàn)

在http{}內(nèi)配置緩存cache

proxy_buffering             on;

proxy_buffer_size           16k;

#設(shè)置Web緩存區(qū)名稱為cache_one,內(nèi)存緩存空間大小為500M,緩存的數(shù)據(jù)超過(guò)1天沒有被訪問(wèn)就自動(dòng)清除;訪問(wèn)的緩存數(shù)據(jù),硬盤緩存空間大小為30G

proxy_cache_path /home/waf/openresty/proxy_cache_path levels=1:2 keys_zone=cache_one:500m inactive=365d max_size=30g;

當(dāng)用戶設(shè)置的緩存頁(yè)面,發(fā)生修改時(shí),手動(dòng)在控制臺(tái)操作,清空緩存,重新從源站緩存最新的資源。

location ~ /purge(/.*) {

allow              127.0.0.1;

allow              10.10.10.10;

deny               all;

proxy_cache_purge  cache_one $host$1$is_args$args;

}

location ~* \.(jpg|jpeg|png)$ {

#使用Web緩存區(qū)cache_one,已在nginx.conf的緩存配置中命名的。

proxy_cache cache_one;                  

#設(shè)置Web緩存的Key值,Nginx根據(jù)Key值md5哈希存儲(chǔ)緩存,這里根據(jù)"域名,URI,

#參數(shù)"組合成Key

proxy_cache_key $host$uri$is_args$args;

proxy_cache_valid 200 304 365d;

proxy_cache_revalidate on;

proxy_cache_lock on;

proxy_ignore_headers Set-Cookie Cache-Control;  

proxy_set_header Range $http_range;

proxy_set_header If-Range $http_if_range;

proxy_no_cache $http_range $http_if_range;  #range請(qǐng)求不緩存

add_header X-Cache $upstream_cache_status;

proxy_pass http://rp_10_11_12_10_80cert_cn;

session_sticky_hide_cookie upstream=rp_10_12_52_89_80cert_placuna_cn;

}

location /test/index.php {

#使用Web緩存區(qū)cache_one,已在nginx.conf的緩存配置中命名的。

proxy_cache cache_one;

#設(shè)置Web緩存的Key值,Nginx根據(jù)Key值md5哈希存儲(chǔ)緩存,這里根據(jù)"域名,URI,

#參數(shù)"組合成Key

proxy_cache_key $host$uri$is_args$args;

proxy_cache_valid 200 304 365d;

proxy_cache_revalidate on;

proxy_cache_lock on;

proxy_ignore_headers Set-Cookie Cache-Control;

proxy_set_header Range $http_range;

proxy_set_header If-Range $http_if_range;

proxy_no_cache $http_range $http_if_range; #range請(qǐng)求不緩存

add_header X-Cache $upstream_cache_status;

proxy_pass http://rp_10_11_12_10_80cert_cn;

session_sticky_hide_cookie upstream=http://rp_10_11_12_10_80cert_cn;

看完上述內(nèi)容,你們掌握nginx中怎么實(shí)現(xiàn)網(wǎng)頁(yè)緩存防篡改的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI