资源暂时不可用:mod_wsgi(pid = 28433):无法连接到WSGI守护程序进程

时间:2015-12-29 04:03:12

标签: python django apache mod-wsgi http-status-code-503

首先:我正在使用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

但我不知道如何修复它。求你帮帮我。

3 个答案:

答案 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的问题。