Nginx 學習筆記(三)proxy_cache 緩存配置和ngx_cache_purge模塊


反向代理的緩存清理

一、proxy_cache配置

(1)如何配置和安裝,都在這里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Nginx/Nginx-Web/Nginx-8-proxy_cache.md

(2)被代理域名:http://www.amailive.com/

(3)測試域名:amailive.tinywan.com

(4)Server主機配置

 server { listen 80; server_name redis.tinywan.com; location / { proxy_cache cache_one; proxy_cache_valid 200 304 1h; proxy_cache_valid 404 1m; proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Nginx-Cache "$upstream_cache_status"; proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_pass http://www.redis.net.cn/;
 expires 1d; } }

 (5)重啟服務器,測試配置是否成功

【1】第一次嘗試,沒有緩存

♣ proxy_cache模塊的工作原理如圖所示

【2】第二次再次訪問,可以看出已經是命中緩存了

proxy_cache模塊的工作原理如圖所示

【3】查看緩存目錄結構

【4】詳細的緩存文件

【5】所有的靜態文件都被緩存

二、ngx_cache_purge配置

1、模塊下載地址 :https://github.com/FRiCKLE/ngx_cache_purge
2、編譯安裝。在我另外一篇博客:http://www.cnblogs.com/tinywan/p/7860774.html

      注:這個模塊不可以動態編譯,我第一次動態編譯后,結果沒有編譯進去,沒有.so文件生成

3、配置文件

        location ~ /purge(/.*) { allow all; #127.0.0.1; 只允許本機訪問
 deny all; #禁止其他所有ip proxy_cache_purge cache_one $host$1$is_args$args; #清理緩存 access_log logs/cache.log cache; # 增加清理輸出日志 }

注:Cache_proxy Purge,這個url中,必須以波浪號開頭,不要加"^"

 4、測試

【1】查看一個緩存文件路徑,這個路徑就是緩存文件的真實路徑了

【2】清理緩存,在瀏覽器地址欄輸入:http://amailive.tinywan.com/purge/lib/swiper/3.0.6/js/maps/swiper.jquery.min.js.map 

 

【3】再次查看該緩存文件,可以看出已經被清理掉,不存在了

【4】再次訪問原來的url,緩存就會失效了。

三、參考文獻

 1、nginx系列(二十)nginx的緩存清理模塊ngx_cache_purge

 2、linux + nginx + ngx_cache_purge 緩存清理

3、動態PHP電商網站偽靜態的 Nginx反向代理Cache緩存終極設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM