【问题标题】:Django WSGI and GunicornDjango WSGI 和 Gunicorn
【发布时间】:2012-08-17 11:34:17
【问题描述】:

这可能是个非常愚蠢的问题;我正在尝试使用 Gunicorn 部署 Django 应用程序。但是,我刚刚创建了如下所示的 wsgi.py(wsgi.py 在我的根项目文件夹中):

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

现在我跑了:

python manage.py run_gunicorn

Gunicorn 会自动获取这个 wsgi.py 吗?这是如何运作的? (不确定 wsgi 在做什么)。还是我需要指定一些东西?

【问题讨论】:

    标签: django gunicorn


    【解决方案1】:

    如果你在 Django 设置模块的 INSTALLED_APPS 中列出了 gunicorn,则命令为:

    python manage.py run_gunicorn
    

    不是你给出的命令。

    【讨论】:

    • 感谢您的指出。那只是一个错字。但是,我的问题是 gunicorn 是如何获取 wsgy.py.. 的?
    • 它没有。当您将“gunicorn”添加到 INSTALLED_APPS 时,它会添加运行它的 run_gunicorn 管理命令,据我所知,它完全忽略了 wsgi.py 文件。 wsgi.py 文件仅由需要直接 WSGI 脚本文件的 WSGI 服务器使用。从技术上讲,您可以直接运行“gunicorn wsgi:application”并避免在这种情况下使用它的管理命令,但您可能必须在 PYTHONPATH 中为环境设置额外的路径,以便它知道在哪里可以找到东西。
    • 轻松找出答案。重命名它并运行命令。如果它出错你确实需要它,但我的理解是 run_gunicorn 管理命令不使用它。
    • 非常感谢!现在我收到此错误:stackoverflow.com/questions/12084673/…
    【解决方案2】:

    我有 Gunicorn 来托管我的 django 网站,这是 config details,希望对您有所帮助

    【讨论】:

    • 这里为什么需要nginx?我们不能只为 80 端口运行 gunicorn 吗?有点困惑为什么我们需要额外的服务器。
    • 你能解释一下在这里使用 nginx 有什么好处吗?
    • gunicorn 是一个 HTTP/WSGI 服务器,旨在为快速客户端或昏昏欲睡的应用程序提供服务。也就是在nginx等缓冲前端服务器后面
    • 仍然不明白为什么我们应该将使用与 NGINX 结合使用。我对服务器的了解很短。
    • 最好使用 Nginx 提供静态文件,并将非静态请求传递给 gunicorn。这是因为 Nginx 在提供静态文件方面非常快。此外,如果你使用 Nginx,你可以在端口 80 上运行一个单独的 Django 服务器,同时提供 HTTP 和 HTTPS。
    猜你喜欢
    • 2012-09-09
    • 1970-01-01
    • 2020-12-04
    • 2015-10-01
    • 2017-02-16
    • 2013-03-01
    • 2013-07-12
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多