Nginx清理Proxy Cache缓存

来自Linux78|wiki

nginx基于proxy_cache_purge模块可以配置Nginx缓存。在http区域中添加:

proxy_cache_path /data/A/proxy_cache levels=2:2 keys_zone=first:20m inactive=1d max_size=100m;

levels 设置目录层次

keys_zone 设置缓存名字和共享内存大小

inactive 在指定时间内没人访问则被删除在这里是1天

max_size 最大缓存空间

在location定义:

location / {

     proxy_pass http://music/;  #只代理的music部分
     proxy_set_header   Host x.x.xxx.com;
     proxy_cache_valid  200 304 100d;
     proxy_cache music;
     proxy_cache_key $uri;

} 参数解释:

proxy_cache first; 根keys_zone后的内容对应

proxy_cache_valid  200 304 301 302 10d;   哪些状态缓存多长时间  
proxy_cache_valid  any 1d;    其他的缓存多长时间  
proxy_cache_key $uri;   通过key来hash,定义KEY的值

缓存清理 1 2 前提:需要重新编译nginx

./configure –add-module=/root/ngx_cache_purge-2.3 然后进行如下配置

location ~ /purge(/.*) {

  allow  all;
  proxy_cache_purge music $1$is_args$args;

} 清理测试

对页面进行访问:curl -H “Host:x.b.xxx.com” http://x.x.x.x:443/a.png

清理页面访问:curl -H “Host:x.b.xxx.com” http://x.x.x.x:443/purge/a.png

注:区别是清理页面URL中含有purge二级目录