要手动删除 Nginx 中某个指定 URL 的服务器端缓存,您可以按照以下步骤操作:
1. 确定缓存路径Nginx 的缓存通常会存储在配置文件中指定的目录里。首先,需要确定缓存的路径。例如,在 Nginx 配置文件(通常是 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)中,你可能会看到类似如下的配置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m use_temp_path=off;
这里 /var/cache/nginx 是缓存存储的路径。
2. 生成缓存文件名Nginx 缓存文件名是基于请求的 URL 通过哈希算法生成的。要删除某个特定 URL 的缓存,您需要知道缓存文件的名字。可以使用以下步骤生成缓存文件的哈希值:
使用命令行工具:
您可以使用 OpenSSL 的 md5 或者 sha1 工具来生成 URL 的哈希值。
echo -n "http://example.com/path/to/your/file" | md5sum
这将输出一个哈希值,如 e99a18c428cb38d5f260853678922e03。
注意:有时,Nginx 使用的哈希算法可能不同,例如 sha1,具体取决于配置文件。
3. 找到并删除缓存文件根据生成的哈希值,您可以在缓存目录中查找对应的文件。Nginx 缓存文件名通常会经过进一步的文件夹分层组织。假设您的缓存目录是 /var/cache/nginx,文件名的哈希值是 e99a18c428cb38d5f260853678922e03,那么您可以通过以下步骤找到文件:
find /var/cache/nginx -name "e99a18c428cb38d5f260853678922e03*"
找到文件后,使用 rm 命令删除它:
rm /var/cache/nginx/e9/9a/e99a18c428cb38d5f260853678922e034. 清理缓存并重启 Nginx(可选)
如果您想清理整个缓存或者在删除文件后让 Nginx 立即生效,您可以选择重启 Nginx:
sudo systemctl restart nginx
或者只重载配置文件(更推荐):
sudo systemctl reload nginx
这样,您就成功地手动删除了 Nginx 缓存中的指定 URL 的缓存文件。
网友回复