Nginx 清除緩存 第三方ngx_cache_purge模塊

Ngixn的緩存失效的時候都是通過proxy_cache_valid定義的多長時間失效,以及上游服務發來的響應一些頭部,比如cache-control來定義緩存什麼時候失效。這些失效都是和定時器一樣基於時間段過期,能不能讓緩存立刻失效呢?

ngx_cache_purge第三方模塊可以立刻的使得某個資源緩存失效,這個模塊是完全可以在生產環境下使用。

 

ngx_cache_purge模塊


 

添加ngx_cache_purge模塊


[root@www ~]# yum install git-1.8.3.1-21.el7_7.x86_64 -y

[root@www src]# git clone  https://github.com/FRiCKLE/ngx_cache_purge
Cloning into 'ngx_cache_purge'...
remote: Enumerating objects: 212, done.
remote: Total 212 (delta 0), reused 0 (delta 0), pack-reused 212
Receiving objects: 100% (212/212), 64.01 KiB | 42.00 KiB/s, done.
Resolving deltas: 100% (116/116), done.

[root@www nginx-1.16.1]# ./configure --prefix=/usr/local/nginx  --add-module=../ngx_cache_purge

[root@www nginx-1.16.1]# make && make install

[root@www nginx-1.16.1]# make upgrade

 

配置nginx.conf


proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=nginx_cache:10m max_size=10G inactive=60m use_temp_path=off;

#緩存存放的位置是 /data/nginx/cache,目錄層級爲兩層,最多存放10G緩存
#緩存key存放的內存空間是 nginx_cache ,單個緩存最大爲 10m
#自動移除60分鐘內沒有人訪問的緩存
#在將緩存放置到 proxy_cache_path 之前,不使用 use_temp_path

 

配置server


location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
                proxy_set_header       Host $host;
                proxy_pass      http://192.168.179.100:9090;
                proxy_redirect http:// $scheme://;
                add_header X-Cache $upstream_cache_status;
               
                proxy_cache nginx-cache;#對應前邊的keys_zone=nginx_cache
                proxy_cache_valid 200 12h;
                proxy_cache_valid 301 302 1m;
                proxy_cache_key $host$uri$is_args$args;
      }
 
location ~ /purge(/.*) {
                  allow all;#指定可以清除緩存的ip,all允許所有ip清除
                  proxy_cache_purge nginx_cache $host$1$is_args$args;
}

 

啓動nginx


/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf


purge命令清除靜態緩存


http://域名+purge+靜態資源相對路徑    來清除靜態資源緩存。

例如,在瀏覽器地址欄輸入:http://www.mytest.com/purge/resources/app/css/product.css

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章