+
101
-

回答

要手动删除 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/e99a18c428cb38d5f260853678922e03
4. 清理缓存并重启 Nginx(可选)

如果您想清理整个缓存或者在删除文件后让 Nginx 立即生效,您可以选择重启 Nginx:

sudo systemctl restart nginx

或者只重载配置文件(更推荐):

sudo systemctl reload nginx

这样,您就成功地手动删除了 Nginx 缓存中的指定 URL 的缓存文件。

网友回复

我知道答案,我要回答