Nginx FastCGI 可以在自定义 URL 上进行缓存吗?

Nginx FastCGI 可以在自定义 URL 上进行缓存吗?

我正在尝试使用 FastCGI 缓存为我的网站构建自定义缓存解决方案。

我尝试仅缓存某些流量很大的 URL。我从日志中知道具体是哪些 URL,但它们总是在变化。

有没有办法可以指定 Nginx 必须缓存的某些 URL,但不缓存其他所有内容。

我已经关注本教程,并且我让缓存工作了。但我搞不清楚如何缓存自定义 URL。例如 url.com/b.php?q=123。

理想情况下,我会将 URL 列表存储在 .conf 文件中,Nginx 会加载该文件,并且它只对这些 URL 使用缓存,而不会缓存所有其他文件。Nginx 可以做到这一点吗?

答案1

您可以使用它来实现这一点。将其放在与服务器块不同的map单独文件中,然后每当它发生更改时,就重新加载 nginx。includehttp

一个例子:

map $request_uri $my_no_cache {
    default           1;
    /b.php?q=123      0;
}

要使用它,请将其放在相关的serverlocation

fastcgi_no_cache $my_no_cache;
fastcgi_cache_bypass $my_no_cache;

相关内容