最干净,最快的Django服务器设置

发布于 2021-01-29 17:10:16

我将部署一个由Django驱动的中型站点。我有专用的Ubuntu服务器。

我对使用哪种服务器软件感到非常困惑。所以我对自己想:为什么不问。

我正在寻找的是:

  • 易于设置
  • 快速便捷的资源
  • 可以提供媒体文件
  • 能够在同一服务器上服务多个djangosites
  • 我宁愿不安装PHP或其他任何会占用资源的东西,而我对此毫无用处。

我听说过Apache,nginx和lighty上的mod_wsgi和mod_python。这些利弊有哪些,我想念某人吗?

@Barry :不知何故我觉得Apache对我来说是肿的。那替代品呢?

@BrianLy
:好的,我会再检查一下mod_wsgi。但是,如果我随便提供静态文件,为什么还需要Apache?我也设法轻松地为django应用提供服务。无论如何,这很糟糕吗?对不起,蜜蜂如此愚蠢:-)

更新 :lighty和nginx怎么样?当它们是最佳选择时,它们是用例?

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    由于我一直在寻找一些更深入的答案,因此我决定自己进行深入研究。如果我有误解,请告诉我。

    一些一般性建议是使用单独的Web服务器来处理媒体。单独来说,我指的是未运行Django的网络服务器。该服务器可以是例如:

    • Lighttpd(浅色)
    • Nginx(EngineX)
    • 或其他轻量级服务器

    然后,对于Django,您可以走不同的道路。您可以:

    • 通过 Apache 服务Django,并:

      • mod_python

    这是稳定且推荐/充分记录的方式。缺点:占用大量内存。

    * **mod_wsgi**
    

    据我了解,mod_wsgi是一个较新的替代方案。在资源上似乎更快,更容易。

    * **mod_fastcgi**
    

    使用FastCGI时,您将Django的服务委托给另一个进程。由于mod_python在每个请求中都包含python解释器,因此它会占用大量内存。这是绕过该问题的一种方法。此外,还有一些安全问题。

    您要做的是,在一个单独的进程中启动Django FastCGI服务器,然后通过重写配置apache以在需要时调用此进程。

    或者您可以:

    • 不使用Apache的情况下为 Django提供服务,但在另一台本地支持FastCGI的服务器上进行服务:

    (文档中提到,如果您没有Apache的特定需求,则可以执行此操作。我想原因一定是为了节省内存。)

    * **Lighttpd**
    

    这是运行Youtube的服务器。它似乎快速且易于使用,但是我见过有关内存泄漏的报告。

    * **Nginx的**
    

    我见过一些基准测试声称该服务器比lighttpd还要快。虽然它主要是用俄语记录的。

    另一件事,由于Python的限制,您的服务器应以分叉模式而不是线程模式运行。

    所以这是我目前的研究,但我需要更多的见解和经验。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看