【发布时间】:2011-02-06 14:24:09
【问题描述】:
我有一个大型 Django 应用程序。它有两个指向不同设置文件的 Apache 虚拟主机,因此应用程序的一部分可通过一个 URL 访问,部分应用程序可通过另一个 URL 访问。 Django 应用使用 virtualenv。
mod_wsgi 被配置为在 Apache 的 VirtualHost 块中以守护程序模式运行:
# domain 1:
WSGIDaemonProcess fc processes=5 threads=5 display-name=%{GROUP} \
user=nobody group=nobody
WSGIScriptAlias / /var/www/python/mine/apache/my.wsgi \
process-group=fc application-group=%{GROUP}
# different apache.conf file for domain 2:
WSGIDaemonProcess fm processes=5 threads=5 display-name=%{GROUP} \
user=nobody group=nobody
WSGIScriptAlias / /var/www/python/mine/apache/other.wsgi \
process-group=fm application-group=%{GROUP}
在使用网站时,请求会时不时地挂起。它永远不会完成。我必须使用浏览器的“刷新”按钮重新加载页面,然后请求才能正常工作。
Apache 本身在 prefork 模式下运行,MaxRequestsPerChild 设置为 0,因为我读过这可能是一个问题。这种情况经常发生,足以成为一个潜在问题 - 可能每 100 个请求,类似这样。
有人知道为什么会这样吗?
谢谢
【问题讨论】:
-
您在错误和访问日志中看到了什么?
-
@payne:错误日志中没有错误,访问日志中也没有任何异常。我不知道挂起的请求是否在访问日志中有条目。
标签: mod-wsgi