Nginx 和 PHP 缓存失效的问题可以通过以下方法解决:
在 Nginx 配置文件中,找到 location
部分,增加或修改 expires
和 add_header
指令。例如:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
这将使得静态资源在 30 天内有效,并添加缓存控制头。
在 PHP 脚本中,使用 clearstatcache()
函数清除缓存。例如:
<?php
// 清除 PHP 缓存
clearstatcache();
?>
你还可以在脚本开头添加以下代码来禁用 PHP 缓存:
<?php
// 禁用 PHP 缓存
ini_set('apc.enable_cli', 0);
ini_set('opcache.enable', 0);
?>
在 PHP 配置文件(php.ini)中,找到以下设置并进行调整:
opcache.enable
:将其设置为 0
以禁用 OPCache。apc.enable_cli
:将其设置为 0
以禁用 APCu(如果已安装)。在修改配置文件后,确保重启 Nginx 和 PHP-FPM 服务以使更改生效。具体命令取决于你的系统环境。
通过以上方法,你应该能够解决 Nginx 和 PHP 缓存失效的问题。如果问题仍然存在,请检查其他可能影响缓存的因素,如浏览器设置、代理服务器等。