我们在服务器(Centos7)上运行两个不同的 django 应用程序,使用 django manage.py runmodwsgi (python 模块 mod_wsgi)。这两个应用程序都运行良好,并且已经运行了几年。我们遇到的奇怪的事情是,每隔 10-12 天左右,我们就会在浏览器中收到一条 403 Forbidden 消息。检查 mod_wsgi apache 错误日志(/tmp/mod_wsgi-localhost:8080:1999/error_log)时,除了下面的错误之外没有任何内容,每当用户尝试访问应用程序失败时就会触发该错误。
AH01630: client denied by server configuration: /tmp/mod_wsgi-localhost:8080:1999/htdocs
收到此错误后,我可以看到错误中引用的 htdocs 目录不存在。
重新启动 Web 服务器可以解决该问题(并且 htdocs 目录会重新出现)。
两个应用程序都遇到此问题。有时同时,有时不同时。否则这两个应用程序都运行良好。我们真的很想找到解决这个恼人问题的方法。
谷歌搜索此错误只是为我提供有关 httpd.conf 文件内容的建议,但当问题是间歇性我在这里描述的方式时,我无法找到任何帮助。
我绘制了 AH01630 错误的日期/时间,发现这种情况发生的频率非常奇怪,对于这两种工具来说,实际上每 10-12 天发生一次。
我什至不知道如何进一步排除故障。任何想法表示赞赏。
我相信我自己已经找到了解决方案,通过阅读 mod_wsgi 的作者、明智的 Graham Dumpleton 先生的话:“如果您要让它们永久运行,请确保使用 --server-root 选项来指定位置将生成的文件放置在 /tmp 下,因为某些操作系统运行的 cron 作业会删除 /tmp 下的旧文件,这可能会搞砸。”
我在 /tmp 下运行东西。我现在将 --server-root 添加到我的“python manage.py runmodwsgi”命令中,并将看看这是否可以解决问题。