【问题标题】:What is the benefit of installing gunicorn for my django app on heroku?在heroku上为我的django应用安装gunicorn有什么好处?
【发布时间】:2012-02-07 02:46:41
【问题描述】:

我最近切换到 Django 来开发我正在开发的 Web 应用程序,并按照 Heroku 的说明在 Heroku 上运行 Django 应用程序。我有一个开发我的应用程序的虚拟环境,我使用 git 进行版本控制并推送到 Heroku。上面的链接表明我安装了 gunicorn:

以上示例使用了 Django 的默认 HTTP 服务器。为了 生产应用程序,您可能希望使用更适合生产的嵌入式 网络服务器,例如 Tornado、gevent 的 WSGI 服务器或 Gunicorn。

然后他们引导用户安装 Gunicorn。

我的问题是:如果我跳过这一步并保持默认设置,我可能会遇到什么问题? Gunicorn 会给我带来什么好处?

【问题讨论】:

    标签: django heroku gunicorn


    【解决方案1】:

    性能更好,安全性和稳定性也可能更好。 Django 的开发 Web 服务器(Heroku 默认使用)并不是真正为生产应用程序设计的。

    【讨论】:

    • 谢谢。在这种情况下,我将尝试设置我的应用程序以运行 gunicorn。不过,我希望这不需要我开始支付 heroku,因为我仍处于开发的早期阶段。
    【解决方案2】:

    Gunicorn 已准备好生产并且非常易于使用。我将它用于我的网站。你通常应该通过像 Nginx 这样的反向代理来运行它。我不确定 Heroku 使用的是什么。你真的应该尝试一下。

    根据我的经验,它比 apache 和 mod_wsgi 以及其他类似设置更容易使用和配置。

    编辑/更新: 作为下面cmets的总结,Heroku已经使用了Nginx作为反向代理

    【讨论】:

    • 您有没有机会简要解释一下“反向代理”是/用于什么?不使用 Nginx 会有什么危险?
    • blog post 是我了解 gunicorn 和 nginx 并被迷住的地方。反向代理可以保护您免受某些类型的拒绝服务攻击,并且 nginx 也可以用来非常有效地托管静态文件。当您在 gunicorn 配置中放置 ip 和端口号时,它是您分配的 IP 还是内部 ip (127.0.0.1)? Heroku 可能已经在做某种代理了。我不知道它是如何工作的
    • 这个post 解释了heroku 的工作原理,据作者所知。它已经在使用 Nginx 反向代理
    • 哇,不错的链接。感谢上帝的 Quora。我想我不会担心 Nginx,因为我在 Heroku 上进行部署。
    • 仅供参考 - heroku 不使用 Nginx for Python。 devcenter.heroku.com/articles/…
    【解决方案3】:

    django 的服务器,是一个开发服务器。它重量轻且易于使用,但不应该在生产中使用,因为它还没有准备好生产。它无法处理许多请求。这个link 提供了 gunicorn、uwsgi 和 django 的开发服务器之间的比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 2020-11-08
      • 2013-01-02
      • 2014-01-13
      • 2015-02-09
      • 2012-02-07
      相关资源
      最近更新 更多