【问题标题】:Django application in herokuHeroku 中的 Django 应用程序
【发布时间】:2012-04-30 03:58:20
【问题描述】:

有人知道如何在社交网站中使用这些技术吗?。我曾经介绍过一个社交网站,知道他们已经使用了这些技术。如果你能准备一个流程和使用它的主要目的。它将是对我有帮助。下面列出了我计划使用的技术 提前谢谢你。

  • Python 2.7。
  • Django 1.3.1.

  • Apache 作为网络服务器。

  • RabbitMQ 作为消息队列。

  • Nginx 作为邮件代理服务器。

  • HAProxy 用于云中的负载平衡。
  • MySQL 5.1 作为数据库系统(Xeround)。

  • Heroku Paas 作为云服务。

【问题讨论】:

    标签: django apache heroku


    【解决方案1】:

    我认为您正在倒退。虽然在开始时大致了解要用于应用程序的技术很有用,但实际上您需要做的是设计应用程序以适应您的需求和预期的用例,并选择合适的技术来匹配。因此,当您需要选择适合目的的技术时,请别人解释技术的目的没有多大意义。

    我无法评论这些技术是否适合您的应用程序,因为“社交网站”描述了可能应用程序的巨大领域。您需要对自己想做什么有一个非常具体的想法,然后其他人才能就您想怎么做提供建议。

    一般而言,Heroku 是适用于各种 Web 应用程序的良好平台,但其中一些选择对 Heroku 没有意义。例如,在这种情况下,将 Apache 用作连接到 Django 的 Web 服务器是没有意义的。 Cedar,Heroku 的新技术堆栈(也是唯一支持 Django 的 Heroku 堆栈)将更好地与例如gunicorn。如果您修改 Heroku buildpack 来设置它,Apache plus (例如 mod_wsgi)可能无法工作,没有技术原因,但这不是正确的选择。

    Heroku 有 very explicit documentation 关于如何使用 Cedar 设置 Django。本文档假定您使用的是 Postgres 而不是 MySQL,这实际上通常是一个好主意,但您可以轻松地将其配置为使用您喜欢的任何 MySQL 服务。 Heroku 附加组件中包含价格合理的 MySQL 软件包。

    对于电子邮件,请务必使用Heroku add-ons。不要尝试在 Heroku 堆栈上部署您自己的邮件服务器(虽然这在技术上可能是可行的,但再次通过修补构建包,这不是 Heroku 的重点)。

    负载平衡由 Heroku 自动完成。如果 Heroku 的负载平衡因任何原因而不足,我建议您直接联系支持人员,因为当我与他们互动时,他们总是表现出有兴趣解决他们服务中任何正确识别的缺陷。

    RabbitMQ 是作为 Heroku 的附加组件提供的,所以如果您确定您的应用程序需要此服务,您应该没有问题。

    【讨论】:

    • 我还没有使用过这个 gunicorn。所以我可以使用 apache 作为网络服务器吗?heroku 可以同时支持数万个连接还是我想使用一些负载平衡技术请建议?
    • 对于 heroku 应用程序是否需要使用 membase 和 memcache/redis 进行逻辑缓存或者我需要使用任何 HTTP 加速器?
    • gunicorn 不需要 Apache。使用 gunicorn,每个 Heroku dyno 可以支持少量并发请求,并且您可以根据需要基本上扩展 dyno 的数量。如果您真的扩展到数千个连接,您将在数据库级别遇到瓶颈,您将需要设计您的应用程序以最大限度地减少这些问题。 Memcache 是一种减少数据库负载的工具。对于图像等静态资产,您应该从内容交付网络(如 Amazon Cloudfront 或某种 Heroku 插件)提供这些资产。
    • 我可能应该澄清两点:如果您在设计时不考虑重负载,那么在达到数千个并发连接之前就会遇到数据库瓶颈。如果您真的获得了数千个并发连接(这将是一个非常高流量的网站),那么在您达到这一点之前,您可能应该拥有一整名专业人员来管理您在 Heroku 或其他地方的应用程序。
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2015-04-22
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多