我有一个由 Vagrant 安装的 Ubuntu VirtualBox。它运行 NGINX 来提供一些静态文件和 Django 应用程序。
我已通过 vagrant 将源文件夹同步到主机 (windows) 中的存储库。我可以在 Windows 中更改 Javascript 文件,并通过 SSH 登录并在 nano 中打开文件来验证是否对我在 VM 中的文件进行了更改。
然而,当我远程进行更改时,NGINX 似乎提供了未更改的版本,最后添加了“非法”字符(这真的让浏览器感到害怕)。当我在 ssh 进入虚拟机时 curl 本地主机时,我得到了相同的文件。 EDIT 当我通过 SSH 编辑文件时,它实际上做了同样的事情
我可以通过 vagrant 重新加载虚拟机(它会重新同步文件夹),它可以正常工作,直到下一次远程更改。
重启 nginx 和 gunicorn 没有帮助。
vagrant 是否锁定文件以便 nginx 必须依赖缓存?这里可能发生了什么?
谢谢!
最佳答案
显然我同事的 Google-foo 比我好。
这显然是 virtualbox 和 nginx 的一个已知问题,它与 nginx 的发送文件有关。您可以简单地添加“sendfile off;”在 nginx 配置中的服务器或位置 block 中。这是一篇关于它的博文:nginx virtualbox static files
关于linux - NGINX 未获取 Vagrant 同步文件夹中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195635/