【问题标题】:dJango mod_wsgi config issue in ApacheApache 中的 dJango mod_wsgi 配置问题
【发布时间】:2014-10-25 17:53:02
【问题描述】:

我正在尝试使用 Apache (2.4) 和 mod_wsgi 运行 dJango(1.5) 应用程序。我遵循了标准教程。我还以文件所有者(我自己)和组的身份运行 apache 用户和组。在我点击一个 url 后,它会等待很长时间,然后给出网关超时。当我在 /var/log/apache2/error.log 中看到 settings.py 中的所有打印语句时,Apache 会点击 wsgi.py 和 upto settings.py,但之后没有输出。它没有得到 urls.py 吗?有人可以帮忙吗?我在这里提供我的 httpd.conf。

WSGIDaemonProcess imse_wsgi python-path=/ldata/Imse user=www-data

<VirtualHost *:80>

    ServerName wonders.pc.hiit.fi
    ServerAlias imse.hiit.fi

    Alias /static/ /ldata/Imse/static/

    <Directory /ldata/Imse/static>
            Require all granted
    </Directory>

    WSGIScriptAlias /imse /ldata/Imse/Imse/wsgi.py
    <Directory /ldata/Imse/Imse>
            Require all granted
            WSGIProcessGroup imse_wsgi
            <Files wsgi.py>
                    Require all granted
            </Files>
    </Directory>
    <IfModule mod_headers.c>
            Header set Access-Control-Allow-Origin "*"
    </IfModule>
</VirtualHost>

这里是wsgi.py

import os
import sys
import django.core.handlers.wsgi

sys.path.append('/ldata/Imse')
sys.path.append('/ldata/Imse/Imse')

os.environ["DJANGO_SETTINGS_MODULE"] = "Imse.settings"
application = django.core.handlers.wsgi.WSGIHandler()

apache2重启时的错误日志

[Tue Oct 28 00:03:28.525134 2014] [mpm_event:notice] [pid 26381:tid 139811474503552] AH00491: caught SIGTERM, shutting down
[Tue Oct 28 00:03:29.592849 2014] [mpm_event:notice] [pid 4084:tid 139694197917568] AH00489: Apache/2.4.10 (Debian) mod_wsgi/4.3.0 Python/2.7.8 configured -- resuming normal operations
[Tue Oct 28 00:03:29.592960 2014] [core:notice] [pid 4084:tid 139694197917568] AH00094: Command line: '/usr/sbin/apache2'

当我点击网址时

[Tue Oct 28 00:05:49.754939 2014] [wsgi:error] [pid 4087:tid 139693984982784] Env loaded
[Tue Oct 28 00:05:49.755014 2014] [wsgi:error] [pid 4087:tid 139693984982784] Application loaded
[Tue Oct 28 00:05:49.755776 2014] [wsgi:error] [pid 4087:tid 139693984982784] /ldata/Imse
[Tue Oct 28 00:05:49.755863 2014] [wsgi:error] [pid 4087:tid 139693984982784] No local settings configured, using defaults
[Tue Oct 28 00:05:49.879412 2014] [wsgi:error] [pid 4087:tid 139693984982784] URL imported
[Tue Oct 28 00:05:49.879445 2014] [wsgi:error] [pid 4087:tid 139693984982784] Loading URLs

这些是来自 wsgi.py(这些在此处删除)和来自 settings.py 的打印,程序卡在 urls.py 中,在页面加载近 5 分钟后,页面显示网关超时并添加了一行error.log 如下

[Tue Oct 28 00:10:49.654957 2014] [wsgi:error] [pid 4089:tid 139693995841280] [client 2001:708:140:200:8a51:fbff:fe64:db53:51393] Timeout when reading response headers from daemon process 'imse_wsgi': /ldata/Imse/Imse/wsgi.py

【问题讨论】:

  • 能否包含 wsgi.py 和从启动 httpd 到尝试通过浏览器访问 /imse 的服务器转储(也是 Django,而不是 dJango)最后,只是为了检查... 去 static/ 是否至少返回静态文件?
  • 抱歉拼写错误。我在上面添加了wsgi.py。

标签: python django apache timeout mod-wsgi


【解决方案1】:

您的应用程序在使用python manage.py runserver 运行时是否成功返回?尝试在代码的其他部分使用更多打印语句来调试执行。例如 urls.py。

【讨论】:

  • 是的,dJango 开发服务器运行良好。到目前为止,我一直在使用它进行开发。现在开发已经完成,我需要把所有东西都放到 apache 中。
  • 我看到的是为 init.py、settings.py 和 urls.py 创建了 .pyc 文件,但不是为 wsgi.py 创建的。 urls.py 中的打印语句也没有出现在日志中,urls.py 中是否发生了什么?
猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
相关资源
最近更新 更多