【问题标题】:How do I debug apache restarting a mod_wsgi process?如何调试 apache 重新启动 mod_wsgi 进程?
【发布时间】:2014-11-09 07:38:01
【问题描述】:

如何调试 apache 以了解它为什么要重新启动 mod_wsgi 进程?这怎么会发生?

我有一个运行 Apache/2.4.7 (Ubuntu) 和 mod_wsgi 的 django 应用程序 - 单进程,多线程。我的 python 日志文件中有消息,这些消息仅在进程首次初始化时发生 - 仅在我手动重新启动 apache 之后......但 apache 尚未重新启动。我也没有在 apache 访问/错误日志中看到任何内容。 apache 是否会自行重启进程?

不久之后,apache 基本上停止了为任何请求提供服务 - 就好像它已经挂起或崩溃了,我需要重新启动 apache。

以前从未见过 - 有什么我可以监控以深入了解 apache 的状态吗?

配置的相关部分如下所示:

###  Apache/sites-enabled/main.wsgi:
<VirtualHost 0.0.0.0:443>
    SSLEngine on
    SSLCertificateFile ...
    SSLCertificateKeyFile ...
    SSLCACertificateFile ...

    Options ExecCGI FollowSymLinks MultiViews

    AddHandler wsgi-script .wsgi
    WSGIDaemonProcess myapp
    WSGIProcessGroup myapp
    WSGIScriptAlias / /myproject/myapp.wsgi

    <Directory /myproject/scripts>
        <Files myapp.wsgi>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>


####  /myproject/scripts/myapp.wsgi:
#!/usr/bin/python
import os
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
sys.path.append('/myproject')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

除了指示进程重新启动的自定义初始化日志条目外,我在 apache-error.log 中注意到以下内容:

[Mon Sep 15 17:43:35 2014] [core:error] [pid 2801:tid 140079485876000] [client 111.111.111.111:64444] End of script output before headers: myapp.wsgi, referer: https://mysite.com/login.html

【问题讨论】:

  • 请发布您的 apache 站点 wsgi 配置。还有你看到的日志。

标签: python django apache mod-wsgi


【解决方案1】:

将 Apache LogLevel 设置为“信息”:

LogLevel info

这将导致 mod_wsgi 输出更多有关重启守护进程的消息。

为此提供日志消息。

还要确保没有错误地在嵌入式模式下运行。

WSGIRestrictEmbedded On

如果您的应用程序挂起,那么问题可能是您使用的 Python 模块在 Python 子解释器中不起作用。为了解决这个问题,设置:

WSGIApplicationGroup %{GLOBAL}

有关此的详细信息,请参阅:

你还可以观看:

它解释了很多关于 Apache 在使用嵌入式模式时如何重新启动进程以及可能导致的问题。

【讨论】:

  • 我无法重现我的错误,但您的答案正是我想要的——谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2017-08-07
  • 2010-11-08
  • 2011-01-22
  • 2014-08-10
相关资源
最近更新 更多