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二级目录