include() 是否使用 fastcgi 缓存?

include() 是否使用 fastcgi 缓存?

我有一个这样的脚本

脚本.php

<?php
include "data/package.php";
echo $package[0]["name"];
echo "Hello World";
?>

我用这个来缓存错误

map $request_uri $cache_false {
    default 0;
    ~^/data/package.php?$ 1;
    ~^/signin.php?$ 1;
}
...
fastcgi_cache cache
fastcgi_cache_bypass $cache_false;
fastcgi_no_cache $cache_false;

并使用页面package.php中的会话signin.php

登录.php

$_SESSION['package'] = 1;

软件包.php

$package = packages($_SESSION['package']);

我想缓存script.php内容$package更改但不进行缓存,因为每个用户的内容都是不同的packages()

和页面的$cache_false = 1设置是否会改变内容?signinpackageinclude()

我是否只需要使用 javascript 并从客户端添加内容?

答案1

nginx 会缓存 URL 的完整响应。如果您请求https://www.example.com/script.php,nginx 会将请求传递给 PHP-FPM,后者在访问 URL 时会首次执行脚本。

nginx 返回缓存的内容以供后续请求。

因此,如果存在includein script.php,它会第一次执行,然后不再执行,因为script.php输出已在缓存中。

相关内容