【问题标题】:Django: do I need to restart Apache when deploying?Django:部署时是否需要重新启动 Apache?
【发布时间】:2009-08-19 20:20:04
【问题描述】:

我刚刚注意到一个令人讨厌的因素:Django 需要重新启动服务器或CGI 才能工作。如果您无权访问 Apache 服务器进程,则第一个选项不可行。第二种,据我所知,对性能是不利的,总的来说,运行 CGI 的想法让我感到不舒服。

我最近还看到了一个名为“我为什么讨厌 Django”的演示文稿。虽然我并没有真正分享演讲者(一个 Flickr 人)的大部分观点,但重新启动服务器这一事实听起来很烦人。

我想知道您在这方面的积极经历。我应该继续使用 Django 并将其用作 CGI,还是支持另一个 Python 框架? CGI 选项有那么糟糕吗?我应该关注它,还是它是一个可行的选项(对于性能和可扩展性)?

【问题讨论】:

  • 请注意,Cal Henderson 关于他为什么讨厌 Django 的演讲是在 DjangoCon 上的主题演讲,所以显然他并没有那么讨厌。他的许多“仇恨”是讽刺的,或者至少意味着“可以做得更好”。
  • 还是比Java web开发好。您必须重新启动服务器并等待更长的时间。
  • @Daniel:是的,但他的一些观点很好,另一些则讽刺到不恰当的程度。我确实理解他是一个可扩展的人,但抱怨空格和制表符以及电线上的东西有点过分......如果你达到这种讽刺水平,你的听众开始想知道其他一切有多少讽刺或真实.

标签: python django


【解决方案1】:

使用 WSGI 标准,通过mod_wsgi。您不必重新启动 Apache,只需更新 .wsgi 文件上的 mtime。

【讨论】:

  • 这假设服务器使用我猜的这个 apache 模块。
  • 你还能如何将 Django 连接到 Apache?你在用像 mod_python 这样的疯狂的东西吗?
  • 我不会打败你——使用 mod_python 是它自己的惩罚。但是您可以改用 mod_wsgi 轻松解决您的问题。以下是一些指南:ericholscher.com/blog/2008/jul/8/setting-django-and-mod_wsgi>、code.google.com/p/modwsgi/wiki/IntegrationWithDjango>
  • 我们可以在非 Apache 服务器上使用 mod_wsgi 吗?
  • 不,mod_wsgi 是一个 Apache 模块 — 尽管令人困惑的是,nginx 有一个“mod_wsgi”,它是一个不相关的代码库。 WSGI 是您编写应用程序的标准; mod_wsgi 只是将它附加到 Apache 的粘合剂。对于不同的 Web 服务器,您将使用不同的胶水,但应用程序本身不需要更改。
【解决方案2】:

我通常不重新启动服务器,而是强制重新加载配置。在 Ubuntu Hardy 服务器上,即

sudo /etc/init.d/apache2 force-reload

它几乎立即完成。

【讨论】:

    【解决方案3】:

    【讨论】:

    • 如果您有时间,请考虑通过在答案本身中包含相关信息来修复帖子,并链接到引用的站点。链接页面更改时,仅链接答案将失效。
    猜你喜欢
    • 2011-03-09
    • 1970-01-01
    • 2013-02-13
    • 2012-10-05
    • 2013-06-30
    • 2017-04-03
    • 1970-01-01
    • 2023-04-04
    • 2011-05-01
    相关资源
    最近更新 更多