【问题标题】:Which Server for DjangoDjango 的哪个服务器
【发布时间】:2013-06-16 14:36:14
【问题描述】:

我应该使用哪个网络服务器/配置来部署一个简单的 Django/django-cms 应用程序? 我的主要兴趣点是(按优先顺序):

  1. 易于安装/配置
  2. 可靠性
  3. 速度
  4. 安全方面

我可以找到不同的可能性:

  • Apache2 与 modwsgi
  • Ngnix 与 uWSGI
  • CherryPy
  • 独角兽

关于上述几点,这些可能性之间是否有任何比较? 我查看了 Django 文档,但没有任何建议。

【问题讨论】:

  • 我使用过 nginx/apache/modwsgi 没有太多问题。也很简单。

标签: django webserver wsgi


【解决方案1】:

所有主要的 WSGI 服务器都提供了良好的性能和可靠性,但最好的答案不是任何人都可以回答的,因为这实际上取决于您的特定应用程序需求。因此,您将在这里得到的只是人们的一堆个人偏好。

还要注意,WSGI 服务器只代表整个堆栈的一小部分,如果配置得当,它只占整体响应时间的很小一部分。换句话说,除非你真的搞砸了如何设置 WSGI 服务器,否则它不会成为瓶颈。

如果您想了解瓶颈在哪里以及可以采取哪些措施来监控它们,请观看我在 PyCon US 2012 上的演讲,其中讨论了 Web 服务器瓶颈和 Python Web 应用程序。

【讨论】:

  • 谢谢,正如我提到的,性能不是很重要。设置应该简单可靠。大多数解决方案都建议使用许多网络服务器。这意味着:要更新更多软件、更多潜在安全问题、更多安装陷阱等。
  • 如果你想要更少的活动部件,那么 Apache/mod_wsgi 会是你想要的。所有其他人要么出于各种原因仍需要前端代理 Web 服务器,要么需要主管来保持它们的运行。有了 mod_wsgi,就只有 Apache,mod_wsgi 加载到 Web 服务器中,而 Apache 是它自己的主管。
【解决方案2】:

在我看来,你没有包括在内,并且为我工作得很好,它使用的是 Nginx + Gunicorn。对于监督 gunicorn 过程,我使用的是 supervisord。 所以我的选择是:

  • Gunicorn + Nginx + Supervisord
  • Nginx + chaussette + Circus(用于 Mozilla)

但是不同的人使用不同的东西。您必须检查最适合您的需求。

在 DjangoCon 2013 上,Tarek Ziade 向我们展示了监督 Django/Python 应用程序的替代方案,名为 Circus,该应用程序使用 Chaussette 托管应用程序。我认为这确实值得注意,因为它直接监督任何 Python/Django 进程并具有其他一些不错的功能。

您可以在此处查看有关 Circus 的 Tarek Ziade 演示并将其与其他解决方案进行比较: http://www.youtube.com/watch?v=YEtTWeeRzUI

【讨论】:

    【解决方案3】:

    Django Servers 有一个很好的资源以及如何配置它们。

    考虑到您的兴趣点,我认为 Ngnix 将是最适合您的。它快速、可靠,并且从链接中可以看出,设置起来并不难。

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多