当我使用ntpdate ntp.ubuntu.com
来同步我的服务器时钟时,发生nginX
caching的问题。
现在,当我请求pathhttp://www.example.com/project/create
我收到了我正在处理的旧的PHP文件。
我尝试在nginx.conf
中将sendfile
设置为off
,甚至在cloudFlare
为我的DNSclosurescaching,但没有成功。
当我看着头部分curl -I http://www.example.com/project/create
我有以下的回应:
HTTP/1.1 302 Moved Temporarily │ Server: nginx │ Date: Fri, 15 Aug 2014 10:51:38 GMT │ Content-Type: text/html │ Connection: keep-alive │ Set-Cookie: PHPSESSID=cihsfrq6aoat5baun8dem01go5; path=/ │ Expires: Thu, 19 Nov 1981 08:52:00 GMT │ Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 │ Pragma: no-cache │ Location: http://www.example.com/site/login
我找不到任何nginxcaching文件夹要删除。 在所有这些变化之后,我已经重新启动了nginX,但什么都没有收到 我想不出为什么会发生这种情况。
编辑1:
似乎是当我使用ntpdate ntp.ubuntu.com
,它将服务器时间更改为7:25
而我的时间是16
! 文件修改现在是16,旧的date,而我的系统时间是7:25。 如果我把时间改为16,那么我的推送者会抛出一个错误,并说给出的时间戳已经过期:
string(112) "Timestamp expired: Given timestamp (2014-08-15T20:06:20Z) not within 600s of server time (2014-08-15T11:39:59Z) "
您可能在PHP中安装了APC
caching模块。 要强制APC高速caching刷新的最简单方法,您应该重新启动您的PHP-FPM
守护进程。
caching时间是使用当前系统时间构build的。 像你经历的时间跳跃,预计会创造奇怪的行为。 nginx
只是其中一个可以这样运行的程序之一。 这些问题一般都很清楚,一度赶上。
尝试运行ntp
守护进程而不是定期运行ntpdate
。 ntp与ntpdate相比的一个优点是,对于较小的调整,它会转换时钟而不是跳过时钟。 一旦你的时钟同步,ntp将大约每15分钟(1024秒)查询其服务器。
如果您知道您的时钟非常closures,则可以在很长一段时间内进行小幅调整以手动调整时钟。 这可以作为一个cron工作脚本和运行。 一旦你在一分钟左右的时间,那么你可以启动你的ntp
守护进程。