您好,登錄后才能下訂單哦!
nginx中怎么實(shí)現(xiàn)網(wǎng)頁(yè)緩存防篡改,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
使用網(wǎng)站防篡改對(duì)指定的敏感頁(yè)面設(shè)置緩存,緩存后即使源站頁(yè)面內(nèi)容被惡意篡改,WAF也會(huì)向訪問(wèn)者返回預(yù)先緩存好的頁(yè)面內(nèi)容,確保用戶看到正確的頁(yè)面。
啟用 網(wǎng)頁(yè)防篡改、敏感信息防泄露開關(guān),才能使用該功能。
填寫精確的要防護(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)
在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è)資訊頻道,感謝各位的閱讀!
免責(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)容。