在Ubuntu和Apache环境中使用Django 1.11,Python 2.7和mod_wsgi 4.6.4。我很确定这是一个配置问题,如果这还不够,我很乐意提供更多信息。在我的Apache配置文件中,我有:
Include "/home/django/wsgi-aliases"
WSGIApplicationGroup %{GLOBAL}
在上面指出的WSGI别名文件中,我写了各种Django应用程序的别名,以及WSGI守护程序模式的规范。例如:
WSGIScriptAlias /EmployeeDirectory /home/django/EmployeeDirectory/EmployeeDirectory/wsgi.py process-group=EmployeeDirectory
WSGIDaemonProcess EmployeeDirectory display-name=WSGI_EmployeeDirectory
Alias /static/EmployeeDirectory /home/django/EmployeeDirectory/EmployeeDirectoryApp/static
这一切都运行得很好,除非进程保持空闲状态,此时有问题的页面会中断,并且在没有Apache正常重启的情况下将无法再次运行。
还有一条信息:此问题仅发生 ,其中的应用程序使用LDAP或我们的内容资源提供程序的身份验证API。我的应用程序既不利用这些也没有问题。示例错误消息:
{'info': 'Connection reset by peer', 'errno': 104, 'desc': "Can't contact LDAP server"}
我发现,如果不使用LDAP和API连接,它们将分别超时。但是,当这些应用程序以非守护进程模式运行时,这绝不是一个问题(我认为这是不推荐的,这也是我们转移到守护进程模式的原因)。
这会对流量相当好的制作页面产生影响,我们非常感谢您提供帮助。提前谢谢。