推荐答案
Nginx 的缓存清除可以通过以下几种方式实现:
- 手动删除缓存文件:直接删除 Nginx 缓存目录中的文件。
- 使用
proxy_cache_purge
模块:通过发送特定的 HTTP 请求来清除缓存。 - 配置缓存过期时间:通过设置
proxy_cache_valid
指令来控制缓存的有效期。
本题详细解读
1. 手动删除缓存文件
Nginx 的缓存文件通常存储在指定的缓存目录中。你可以通过以下步骤手动删除缓存文件:
- 找到 Nginx 的缓存目录,通常在配置文件中通过
proxy_cache_path
指令指定。 - 使用
rm
命令删除缓存目录中的文件。
rm -rf /path/to/nginx/cache/*
这种方法简单直接,但需要手动操作,适用于临时清除缓存。
2. 使用 proxy_cache_purge
模块
proxy_cache_purge
是 Nginx 的一个第三方模块,允许通过发送 HTTP 请求来清除缓存。使用步骤如下:
- 安装
ngx_cache_purge
模块。 - 在 Nginx 配置文件中添加
proxy_cache_purge
指令。
location /purge { proxy_cache_purge CACHE_ZONE $scheme$proxy_host$request_uri; }
- 发送 HTTP 请求来清除缓存。
curl -X PURGE http://example.com/purge/some/resource
这种方法适用于自动化清除缓存,特别是在需要频繁清除缓存的场景中。
3. 配置缓存过期时间
通过设置 proxy_cache_valid
指令,可以控制缓存的有效期。当缓存过期后,Nginx 会自动清除旧的缓存并重新获取新的内容。
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
在上面的例子中,状态码为 200 和 302 的响应会被缓存 10 分钟,而状态码为 404 的响应只会被缓存 1 分钟。
这种方法适用于需要定期更新缓存的场景,但无法立即清除缓存。