代码之家  ›  专栏  ›  技术社区  ›  Gabriel Ross

在mod_wsgi下运行Django站点

  •  9
  • Gabriel Ross  · 技术社区  · 16 年前

    我试图用mod_wsgi而不是mod_python(RHEL 5)运行我的Django站点。我在所有网站上都尝试过,但都遇到了同样的问题。我按照大家推荐的标准方式配置了它,但对网站的请求只是超时。

    Apache配置文件:

    <VirtualHost 74.54.144.34>
        DocumentRoot /wwwclients/thymeandagain
        ServerName thymeandagain4corners.com
        ServerAlias www.thymeandagain4corners.com
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        CustomLog /var/log/httpd/thymeandagain_access_log combined
        ErrorLog /var/log/httpd/thymeandagain_error_log
        LogLevel error
        WSGIScriptAlias / /wwwclients/thymeandagain/wsgi_handler.py
        WSGIDaemonProcess thymeandagain user=admin group=admin processes=1 threads=16
        WSGIProcessGroup thymeandagain
    </VirtualHost>
    

    wsgi_handler.py:

    import sys
    import os
    
    sys.path.append("/wwwclients")
    os.environ['DJANGO_SETTINGS_MODULE'] = 'thymeandagain.settings'
    
    import django.core.handlers.wsgi
    
    application = django.core.handlers.wsgi.WSGIHandler()
    

    应该生成的守护进程mod_wsgi不在那里,所以请求只是超时,我在日志中收到了一堆“无法连接到wsgi守护进程”的错误。WSGIDaemonProcess指令是否阻止了守护进程的创建?提前感谢您的帮助。..

    编辑:我在错误日志中得到了这个:

    [WARN@1227228322.174175] mcm_server_readable():2582: timeout: Operation now in progress: select(2) call timed out for read(2)able fds
    [INFO@1227228322.174263] mcm_get_line():1592
    [WARN@1227227903.249626] mcm_server_readable():2582: timeout: Operation now in progress: select(2) call timed out for read(2)able fds
    [INFO@1227227903.249712] mcm_get_line():1592
    [Thu Nov 20 21:18:17 2008] [notice] caught SIGTERM, shutting down
    [Thu Nov 20 21:18:18 2008] [notice] Digest: generating secret for digest authentication ...
    [Thu Nov 20 21:18:18 2008] [notice] Digest: done
    [Thu Nov 20 21:18:18 2008] [notice] mod_python: Creating 4 session mutexes based on 8 max processes and 64 max threads.
    [Thu Nov 20 21:18:18 2008] [notice] Apache/2.2.3 (Red Hat) mod_python/3.2.8 Python/2.4.3 mod_wsgi/2.1-BRANCH configured -- resuming normal operations
    
    3 回复  |  直到 16 年前
        1
  •  10
  •   Graham Dumpleton    16 年前

    真正的问题是Apache日志目录的权限。有必要告诉Apache/mod_wsgi为用于与守护进程通信的UNIX套接字使用备用位置。请参阅:

    http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets

        2
  •  4
  •   vvarp    16 年前

    问题是mod_python和mod_wsgi不能很好地结合在一起。几周前我遇到了类似的问题,在我评论了mod_python包含后不久,一切都开始为我工作。

    尝试搜索 modwsgi.org “mod_python”的wiki,我相信有人在评论中谈论过这个

        3
  •  1
  •   Vladimir Prudnikov    16 年前

    Here 详细描述了如何将django与modwsgi集成。