在 Ubuntu 服务器进行 ntpdate 更新后,我总是在 nginx 中收到旧的 php 文件

在 Ubuntu 服务器进行 ntpdate 更新后,我总是在 nginx 中收到旧的 php 文件

nginX当我ntpdate ntp.ubuntu.com同步服务器时钟 时出现了缓存问题。

现在,当我请求路径时http://www.example.com/project/create,我会收到我正在处理的旧 PHP 文件。

我尝试设置sendfileoffnginx.conf甚至关闭了cloudFlare我的 DNS 缓存,但没有成功。

当我查看标题部分时,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  

我找不到任何要删除的 nginx 缓存文件夹。完成所有这些更改后,我重新启动了 nginX,但没有任何效果。我想不出发生这种情况的其他原因。

编辑1:
似乎当我使用时ntpdate ntp.ubuntu.com,它会将服务器时间更改为,7:25而我的时间是16!? 文件修改现在为 16,即旧日期,而我的系统时间是 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) " 

答案1

您可能APC在 PHP 中安装了缓存模块。强制刷新 APC 缓存的最简单方法是重新启动PHP-FPM守护进程。

答案2

缓存时间是使用当前系统时间构建的。您所经历的时间跳跃预计会产生奇怪的行为。 nginx只是几个可以这样表现的程序之一。一旦时间赶上,这些问题通常就会消失。

尝试运行ntp守护进程,而不是定期运行ntpdate。ntp 相对于 ntpdate 的一个优势是,对于较小的调整,它将使时钟平稳而不是跳跃。一旦您的时钟同步,ntp 将大约每 15 分钟(1024 秒)查询一次其服务器。

如果您知道您的时钟明显偏差,那么您可以在很长一段时间内手动调整时钟。这可以编写脚本并作为 cron 作业运行。一旦您与实际时间相差一分钟左右,您就可以启动守护程序ntp

相关内容