我有带上游的 nginx。
上游设置标头:
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
因为我想要这个页面被缓存,所以在 nginx 中我有以下配置:
location ~* ^.+\.(html)$ {
proxy_pass http://websitefarm.php73;
add_header Pragma "";
add_header x-pragma "OK";
expires 1d;
}
它成功删除了 Expires 和 Cache-Control,但 Pragma 仍然存在。
注意我的测试头“x-pragma”已设置。因此 conf 肯定“有效”
expires: Sat, 25 Jul 2020 12:13:04 GMT
cache-control: max-age=86400
pragma: no-cache
x-pragma: OK
如果我尝试将“Pragma”设置为其他内容,它会起作用,但“”似乎不起作用。
答案1
似乎只能使用proxy_hide_header
指令才能删除
以下配置有效:
location ~* ^.+\.(html)$ {
proxy_pass http://websitefarm.php73;
proxy_hide_header Pragma;
expires 1d;
}
答案2
这是 PHP 配置问题。您已设置session.cache_limiter
nocache
,可以保留其默认值,也可以在代码中明确设置,或者两者兼而有之。
如果感兴趣的页面确实是可缓存的,并且不适用于登录用户,那么您需要与应用程序的开发人员讨论会话的不当使用。