【问题标题】:django and uwsgi configuration issuesdjango 和 uwsgi 配置问题
【发布时间】:2015-06-29 15:10:30
【问题描述】:

我正在尝试让 django 项目与 uswgi 和 virtualenv 一起工作

我对某些参数的位置和守护进程的输出感到困惑

到目前为止,这是我的配置

**[uwsgi]
socket=172.26.1.87:8000
chdir=/home/bischofs/1065/1065-Calculation-Tool/TestSite/
module=TestSite.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
#daemonize=/var/log/uwsgi/TestSite.log
virtualenv=/home/bischofs/1065/python3.4/% **

我的问题是当我加载它时我得到了

Python version: 2.7.8 (default, Oct 20 2014, 15:08:52)  [GCC 4.9.1]
Set PythonHome to /home/bischofs/1065/python3.4/
*** Python threads support is disabled. You can enable it with --    enable-threads ***
Python main interpreter initialized at 0xfcd820
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds

即使我在 virtualenv 中运行 python3.4,为什么没有选择正确的解释器和库?

我也来了

*** Operational MODE: single process ***
ImportError: No module named TestSite.wsgi

即使我有一个正确生成的 wsgi.py 文件

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "TestSite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

这让我觉得我将 ini 文件指向了错误的目录。

uswgi 文档不清楚应该指向哪些目录。它只是说/path/to/your/project。这是否意味着带有 settings.py 文件的目录?还是它上面的目录?

【问题讨论】:

  • 你安装uwsgi是先激活你的virtualenv然后运行pip install uwsgi吗?
  • 如果你 chdir 到 blahblahblah/TestSite,除非你有另一个 TestSite 包里面不应该你的模块只是 wsgi:application?
  • 我用 apt 安装了 uwsgi,但我在激活 virtualenv 的情况下运行它

标签: django wsgi uwsgi


【解决方案1】:

uWSGI 是一个链接到特定 python 库(如 apache+mod_wsgi)的二进制应用程序。在 virtualenv 中运行它只会改变它对 python 模块的视图,而不是它所链接的 python 库。当您使用 ubuntu 包时,您只需要安装适用于 python 3 的插件(并使用 plugin = python3 加载它)。否则,激活您的 virtualenv 并 pip install uwsgi 以获得与 virtualenv 特定的 python 库链接的整体版本。

【讨论】:

    【解决方案2】:

    我使用过这个配置 - 一切都很好。

    [uwsgi]
    chdir=/var/www/prj_name
    home=/home/uwsgi/.virtualenvs/prj_name/
    pythonpath=/var/www/prj_name
    env=DJANGO_SETTINGS_MODULE=prj_name.settings
    module=prj_name.wsgi:application
    socket=127.0.0.1:3001
    master=True
    vacuum=True
    max-requests=5000
    threads = 20
    enable-threads = True
    buffer-size = 8192
    logger = file:/var/logs/prj_name/uwsgi.log
    

    顺便看看virtualenvwrappergunicorn。这个包可以在日常开发中帮助你很多。

    【讨论】:

    • 我已经让 uwsgi 运行没有错误,但是在浏览器中访问会产生一个空响应,没有任何错误被 uwsgi 吐出
    • 是的,我正在考虑切换到 gunicorn,uwsgi 现在很糟糕——没有错误,日志和配置非常丑
    • 一般情况下chdir是否应该和pythonpath一样?
    猜你喜欢
    • 2020-03-04
    • 1970-01-01
    • 2013-04-10
    • 2015-11-08
    • 2015-02-19
    • 1970-01-01
    • 2011-02-04
    • 2020-06-14
    • 2020-01-23
    相关资源
    最近更新 更多