首先:我正在使用Apache / 2.2.31(Unix)和带有WSGI的Django 1.8的Web服务器上工作。
在我对views.py文件进行一些更改并触及wsgi.py以使更改生效之前,一切都很好。之后,每当我尝试使用浏览器访问我的域上的任何页面时,它都会返回以下消息:
服务暂时不可用
由于服务器暂时无法为您的请求提供服务 维护停机或容量问题。请稍后再试。
此外,还有503 Service Temporarily Unavailable错误 尝试使用ErrorDocument来处理时遇到 请求。
我的Apache的error_log包含以下条目:
catchError
我一直在寻找解决方案,我发现了这个问题:https://groups.google.com/forum/#!topic/modwsgi/H7qPoqYNJdI
这个悬而未决的问题:https://stackoverflow.com/questions/33549891/mod-wsgi-returning-503-service-unavailable
但我不知道如何修复它。求你帮帮我。
答案 0 :(得分:0)
来自:http://engineering.hackerearth.com/2013/11/21/scaling-python-django-application-apache-mod_wsgi/
调整mpm-worker配置
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 10
MaxSpareThreads 25
ThreadLimit 25
ThreadsPerChild 25
MaxClients 75
MaxRequestsPerChild 0
</IfModule>
此配置强制执行以下规则:
Initial number of server processes started is two.
Maximum number of clients is restricted to 75.
Each process has 25 threads.
Maximum number of processes that could be created is 75/25 = 3.
Our process size is ~220 MB (very very fat, I know!), so that means we only need ~660 MB in the worst case.
答案 1 :(得分:0)
我们发现调整 mod_wsgi listen-backlog
并增加 net.core.somaxconn
(至少在 Ubuntu 上)似乎可以消除 listener backlog limit was exceeded
问题。当然,这在很大程度上取决于流量和用户水平。
答案 2 :(得分:-3)
在找不到答案后,我解决了重启Apache的问题。