【问题标题】:Weird nginx caching奇怪的 nginx 缓存
【发布时间】:2015-04-08 15:24:26
【问题描述】:

我正在尝试使用PuPHPet 设置一个开发服务器,它本质上只是一个预先构建的 Vagrant,其中预装了 PHP、Nginx 和其他一些东西。

我的 .css 文件有一个奇怪的缓存问题。

当我直接通过我的开发 URL 访问我的 .css 文件时,它会显示文件的一部分。这是我开始编辑之前的文件。您会从我的屏幕截图中注意到,我已删除文件的全部内容并将其替换为数字“12345”。当我在浏览器中刷新 .css 文件时,我看到了 old 文件的前 5 个字符。添加一个额外的字符会从旧文件中恢复一个额外的字符。

重启 nginx 不会清除缓存。 Ctrl+F5 不清除缓存。检查来自vagrant ssh的文件内容:

[08:11 PM]-[vagrant@precise64]-[/var/www/public/css]-[hg default] B
B$ cat main.css
12345

我可以看到文件是最新的。它部分显示的文件根本不存在。我最好的猜测是它读取磁盘上文件的长度,然后从内存中提取实际内容。

内置的PHP 5.4开发服务器没有这个问题,所以我很确定Nginx是罪魁祸首。

如何让 Nginx 以正常的方式运行?

【问题讨论】:

    标签: caching nginx vagrant puphpet


    【解决方案1】:

    很可能是this know VirtualBox bugsendfile 系统调用。

    尝试在 nginx 配置中禁用 sendfile:

    sendfile off;
    

    (在阿帕奇EnableSendfile off

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      相关资源
      最近更新 更多