nginx删除图片缓存

配置这两个字段:
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
默认存放位置我没有细研究,删除缓存可以直接删除 /home/cache里面的所有内容即可删除所有缓存。还有如下配置可以实现有针对性的删除相应缓存文件:
#用于清除缓存,假设一个URL为http://192.168.1.1/test.txt,通过访问http://192.168.1.1/purge/test.txt就可以清除该URL的缓存。
location ~ /purge(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
#allow 127.0.0.1;
allow all;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
### 三级标题:Nginx 自定义缓存配置方法 在 Nginx 中实现自定义缓存设置,可以通过 `proxy_cache` 指令及相关模块来完成。这一功能允许将后端服务器的响应缓存到本地磁盘中,以减少对后端服务的重复请求并提升响应速度。 首先需要指定缓存文件存储的位置和相关参数,这通过 `proxy_cache_path` 指令进行配置。例如: ```nginx http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off; } ``` 上述配置定义了缓存路径为 `/data/nginx/cache`,设置了两级目录结构,分配了一个名为 `my_cache` 的共享内存区域用于存储缓存键值信息,并限制最大缓存大小为 1GB,未被访问超过 60 分钟的缓存将被视为过期[^1]。 接下来,在具体的 `server` 或 `location` 块中启用缓存功能,并使用 `proxy_cache` 指定之前定义的缓存区名称,例如: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; } } ``` 在此配置中,所有针对根路径 `/` 的请求结果都会根据状态码进行缓存:200 和 302 响应会被缓存 10 分钟,而 404 响应仅缓存 1 分钟[^1]。 为了控制哪些请求应该走缓存、哪些不应该,可以利用 `proxy_no_cache` 和 `proxy_cache_bypass` 指令配合变量判断逻辑来实现更精细的策略。例如,当存在特定 Cookie 或查询参数时跳过缓存处理: ```nginx location /dynamic-content/ { set $no_cache 0; if ($request_header_or_cookie ~ "some_pattern") { set $no_cache 1; } proxy_pass http://backend; proxy_cache my_cache; proxy_cache_bypass $no_cache; proxy_no_cache $no_cache; } ``` 此外,如果希望支持客户端缓存机制,则可以在相应 `location` 中添加合适的 HTTP 头部字段如 `Cache-Control` 来指示浏览器如何对待这些资源: ```nginx location ~ \.(jpg|jpeg|png|gif|ico)$ { add_header Cache-Control "public, max-age=86400"; } ``` 这段配置意味着图片类静态资源将会被浏览器缓存长达一天时间[^2]。 最后,关于缓存清理问题,虽然 Nginx 自身并不直接提供删除特定缓存条目的接口,但可以通过外部脚本或者结合第三方模块(比如 `ngx_cache_purge`)来实现按需清除操作。常规做法是定期运行清理任务移除过期文件,或是构建一个管理界面触发特定 URL 的缓存刷新动作[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值