首页 > 技术文章 正文
PHP 搭配nginx 使用fastcgi_cache全站缓存,导致部分页面 php不生效怎么办?

 2023-09-01 10:59:08

提供两种解决方案:

如果您的网站已经全面采用了 fastcgi_cache_path 进行页面缓存,但您希望部分 PHP 页面不使用缓存,您可以通过一些方法来实现这一目标。以下是一些可能的方法:

在 PHP 页面中设置缓存相关的 HTTP 头部: 在您不希望缓存的 PHP 页面中,通过设置特定的 HTTP 头部来禁用缓存。例如,您可以在页面的头部添加类似的代码:


<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: 0");
?>

这将告诉浏览器和缓存服务器不要缓存页面内容。

使用不同的 URL 结构: 如果您有一些 PHP 页面不想使用缓存,可以考虑在这些页面的 URL 上使用不同的结构,以便缓存服务器不会将其缓存。例如,在 URL 中添加一个参数,或者使用不同的子域名。通过 Nginx 配置实现例外: 如果您使用 Nginx 作为 Web 服务器,并且使用了 fastcgi_cache_path 进行页面缓存,您可以通过 Nginx 配置来实现特定页面的例外。在您的 Nginx 配置文件中,找到与缓存相关的配置块,通常类似于:


location ~ \.php$ {
    # FastCGI settings and cache configuration
}

在不希望缓存的 PHP 页面上方,添加一个新的 location 块,禁用缓存,例如:


location = /path/to/your/non-cached-page.php {
    fastcgi_cache_bypass $http_pragma;
    fastcgi_no_cache $http_pragma;
    # Other FastCGI settings
}

这将根据请求中的 Pragma 头部决定是否绕过缓存。

原文链接:https://www.yuepc.com/info/153364.html

  •  标签: