我在Ubuntu Precise和Ubuntu Lucid上运行了一些Django应用程序。 我注意到有时在我的日志中我有一些503。在那些503期间,我在我的apache错误日志中找到了这些日志:
(2)
No such file or directory: mod_wsgi (pid=24507): Unable to connect to WSGI daemon process 'appname' on '/var/run/apache2/wsgi.27607.2.18.sock' after multiple attempts
我的所有应用都设置了WSGIDaemon模式,其设置与此类似:
WSGIDaemonProcess appname display-name=wsgi-appname \
processes=4 \
threads=4 \
maximum-requests=1000 \
inactivity-timeout=120 \
deadlock-timeout=60 \
shutdown-timeout=5
WSGIProcessGroup appname
mod_wsgi文档在这里引用了这个问题:https://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets 但这似乎并不适用于我的情况,因为我偶尔只会看到错误。
有趣的是要注意:
在我的一台服务器上,apache于3月12日启动。我上次看到错误的时间是Mar 25 18:02:32
,它与.sock
文件的创建日期相匹配。
编辑:当apache重新加载发生时,此时间戳更新。我想知道重装是否会导致503s ......
有谁知道为什么会这样或者我如何调试它?
答案 0 :(得分:1)
是。 Apache正常重启可能会导致此问题,尤其是在HTTP客户端使用保持活动连接的情况下。如果您只运行带有mod_wsgi守护程序模式的Python Web应用程序而不使用Apache进行其他任何操作,因为正常重启并不会对mod_wsgi守护程序进程执行任何特殊操作,您也可以使用Apache重新启动而不是重新加载。
有关mod_wsgi如何工作的更深入的描述,请使用mod_wsgi列表而不是StackOverflow,因为这里不是讨论论坛。