nginx + php-fpm忽略无缓存标头

时间:2010-09-21 20:43:03

标签: php nginx fastcgi

我在php页面上使用以下标题。

 // Prevent page caching.
 header('Expires: Tue, 20 Oct 1981 05:00:00 GMT'); 
 header('Cache-Control: no-store, no-cache, must-revalidate'); 
 header('Cache-Control: post-check=0, pre-check=0', FALSE); 
 header('Pragma: no-cache');

我也在网址中使用rand = 999999999(带有真实的随机数)。

但页面仍在缓存中。重新加载工作,但首先加载缓存。谁知道我可以在哪里改变这个?

1 个答案:

答案 0 :(得分:0)

您的问题很可能是浏览器,操作系统和您正在使用的代理的某种组合。因此...

a)停止使用IE测试Web应用程序,直到您知道您的应用程序在至少两个实际上尝试遵循标准的不错的浏览器中100%工作。 FF有很好的开发工具,值得推荐。

b)重新启动窗口并清除缓存。设置FF以检查每次访问。禁用测试站点的任何本地代理。现在测试。让它工作。检查服务器上的日志以证明发生了缓存。如果它被提供,它没有被缓存。

c)然后尝试使用IE进行测试。修复布局(不破坏适合的浏览器)。 修复IE中出现的javascript错误(同样不会破坏其他浏览器)。修复IE中出错的其他所有问题 - 所有这些都不会破坏工作代码。 (停止诅咒MS - 它对你的健康不利)。

d)为IE用户留下剩余的错误 - IE中的一些错误无法解决。:(

好的 - 我会承认猜测一下你的麻烦的原因。与Windows和IE有同样的麻烦。以上是一个实用的解决方案。

P.S。我使用nginx和fastcgi超过2年。没有任何问题。