【问题标题】:Setting up django with uwsgi and nginx使用 uwsgi 和 nginx 设置 django
【发布时间】:2013-08-31 08:48:25
【问题描述】:

我正在尝试使用 uwsgi 和 nginx 为 django 1.5 应用程序提供服务。以下是我的ini文件

[uwsgi]
# variables
projectname = mysite
projectdomain = mysite.in
base = /home/shwetanka/projects/me/mysite

# config
plugins = python
master = true
protocol = uwsgi
env = DJANGO_SETTINGS_MODULE=%(base)/%(projectname).settings
#pythonpath = %(base)/src/%(projectname)
module = %(base)/mysite/wsgi.py
socket = 127.0.0.1:8889
logto = %(base)/logs/uwsgi.log
#below line runs it as a daemon in background
daemonize = /var/log/uwsgi/mysite.log

我在日志中收到此错误 -

Sat Aug 31 14:05:35 2013 - *** Starting uWSGI 1.2.3-debian (64bit) on [Sat Aug 31 14:05:35 2013] ***
Sat Aug 31 14:05:35 2013 - compiled with version: 4.7.2 on 07 November 2012 03:49:52
Sat Aug 31 14:05:35 2013 - detected number of CPU cores: 4
Sat Aug 31 14:05:35 2013 - current working directory: /
Sat Aug 31 14:05:35 2013 - detected binary path: /usr/bin/uwsgi-core
Sat Aug 31 14:05:35 2013 - your memory page size is 4096 bytes
Sat Aug 31 14:05:35 2013 - detected max file descriptor number: 1024
Sat Aug 31 14:05:35 2013 - lock engine: pthread robust mutexes
Sat Aug 31 14:05:35 2013 - uwsgi socket 0 inherited UNIX address /run/uwsgi/app/mysite/socket fd 3
Sat Aug 31 14:05:35 2013 - uwsgi socket 1 inherited INET address 127.0.0.1:8889 fd 5
Sat Aug 31 14:05:35 2013 - Python version: 2.7.4 (default, Apr 19 2013, 18:30:41)  [GCC 4.7.3]
Sat Aug 31 14:05:35 2013 - *** Python threads support is disabled. You can enable it with --enable-threads ***
Sat Aug 31 14:05:35 2013 - Python main interpreter initialized at 0xd36dc0
Sat Aug 31 14:05:35 2013 - your server socket listen backlog is limited to 100 connections
Sat Aug 31 14:05:35 2013 - *** Operational MODE: preforking ***
ImportError: Import by filename is not supported.
Sat Aug 31 14:05:35 2013 - unable to load app 0 (mountpoint='') (callable not found or import error)
Sat Aug 31 14:05:35 2013 - *** no app loaded. going in full dynamic mode ***
Sat Aug 31 14:05:35 2013 - *** uWSGI is running in multiple interpreter mode ***
Sat Aug 31 14:05:35 2013 - gracefully (RE)spawned uWSGI master process (pid: 6093)
Sat Aug 31 14:05:35 2013 - spawned uWSGI worker 1 (pid: 6245, cores: 1)
Sat Aug 31 14:05:35 2013 - spawned uWSGI worker 2 (pid: 6246, cores: 1)

如何让它工作?

【问题讨论】:

    标签: python django nginx uwsgi


    【解决方案1】:

    ImportError: 不支持按文件名导入。

    --module 指令需要一个模块,而不是一个文件。你应该改用--wsgi-file

    【讨论】:

      【解决方案2】:

      您需要调用 django 模块:--module mysite.wsgi:application

      别忘了添加:--env DJANGO_SETTINGS_MODULE=mysite.settings

      例如,一个工作命令行是(假设您的当前目录是您的项目主目录):

      uwsgi --socket mysite/zohosel.sock  --module mysite.wsgi:application --env DJANGO_SETTINGS_MODULE=mysite.settings --home=/path/to/your/venv --chmod-socket=666
      

      可以在the django docs website 上找到一些额外的信息和论据。
      顺便说一句,这个tutorial on readthedocs对我帮助很大。

      【讨论】:

        【解决方案3】:

        如果你能正确使用python manage.py runserver 0.0.0.0:8000

        然后在同一目录下运行uwsgi --http :8000 --module mysite.wsgimysite 是你的 django 项目的名称。

        参考:https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html

        【讨论】:

        • uwsgi: 无法识别的选项 '--module' 。版本:2.0.18
        猜你喜欢
        • 2015-10-22
        • 2011-03-12
        • 1970-01-01
        • 2014-02-01
        • 2014-02-05
        • 1970-01-01
        • 2016-04-11
        • 2014-12-17
        • 2016-10-13
        相关资源
        最近更新 更多