【问题标题】:nginx on VirtualBox Ubuntu guest serves stale content [closed]VirtualBox Ubuntu 来宾上的 nginx 提供过时的内容 [关闭]
【发布时间】:2012-03-26 03:02:27
【问题描述】:

我不知道这是 Ubuntu、VirtualBox 还是 nginx 的问题。

我在 Ubuntu 上运行 nginx,它是 Windows 7 上的 VirtualBox 来宾。Windows 7 文件夹作为自动安装的只读共享文件夹安装在 VirtualBox 中。 Ubuntu 将文件夹视为 /media/sf_jsource

现在,如果我在 Windows 7 上编辑该文件夹中的文件,Ubuntu 上的 shell 命令 (cat) 会看到新内容。这似乎意味着 VirtualBox 和 Ubuntu 正在接受新的变化。

但是,在 Ubuntu 上运行的 nginx 服务器继续提供陈旧的内容。这表明问题出在 nginx 缓存文件上。我四处搜索,看到几个条目(从 2010 年到 2011 年)来禁用 nginx 缓存。但是,我没有在 nginx 配置中启用任何缓存,也没有看到任何 /var/cache/nginx 或 /opt/cache/nginx 目录要清除。

现在,有趣的是重新启动 nginx 并不能解决问题。我必须为 nginx 重新启动 Ubuntu 来宾才能看到新内容,这没有意义,因为 Ubuntu 中的 cat 在重新启动之前无论如何都会看到更改。

几乎所有东西(nginx、Ubuntu、VirualBox)都是 2012 年初的最新版本。

【问题讨论】:

  • 我在 OSX 上运行 Vagrant 时遇到了这个问题。正如@BenitoCiaro 所说,在/etc/nginx/nginx.conf 中关闭sendfile 解决了这个问题。

标签: ubuntu nginx virtualbox


【解决方案1】:

一些事实:

  1. 如果你没有在 nginx 中启用缓存,那么 nginx 将不会提供缓存的内容。

  2. 如果重启nginx,任何缓存的内容无论如何都会被丢弃。

结论: 从浏览器本身开始,缓存发生在请求周期的多个级别。由于事实表明缓存不是由 Nginx 进行的,因此您需要从浏览器开始查看其他可能的缓存位置。

【讨论】:

  • 这是一个 Nginx 相关问题 + 权限。我有类似的问题,我现在正在使用 Apache2 ;-( 不知道为什么 btw.
猜你喜欢
  • 2012-06-26
  • 1970-01-01
  • 2010-09-08
  • 2016-10-14
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
相关资源
最近更新 更多