最干净和最快的Djang服务器设置

2024-05-15 00:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我要部署一个由Django提供支持的中等规模的站点。我有一个专用的Ubuntu服务器。

我真的很困惑该使用哪种服务器软件。所以我想:为什么不问问斯塔克弗洛夫。

我要找的是:

  • 易于设置
  • 方便快捷的资源
  • 可以提供媒体文件
  • 能够在同一台服务器上服务多个djangosite
  • 我宁愿不安装PHP或其他任何消耗资源的东西,我对这些东西没有用处。

我听说过Apache、nginx和lighty上的mod_wsgi和mod_python。哪些是正反两方面的,我是否错过了某个人?

@Barry:不知怎的,我觉得Apache对我来说太臃肿了。其他选择呢?

@BrianLy:好的,我再去看看mod wsgi。但是,如果我用lighty提供静态文件,为什么我需要Apache?我还设法为django应用程序本身提供了lighty。那是不是很糟糕?对不起,我喝啤酒太蠢了

更新:lighty和nginx是什么样的用例?它们是完美的选择?


Tags: django服务器modwsgi站点ubuntuapache部署
2条回答

因为我在寻找更深入的答案,所以我决定亲自深入研究这个问题。如果我误解了什么,请告诉我。

一些一般的建议是使用一个单独的web服务器来处理媒体。我所说的单独,是指一个不运行Django的web服务器。例如,此服务器可以是:

  • Lighttpd(轻)
  • Nginx(引擎)
  • 或者其他的轻量级服务器

然后,对Django来说,你可以走不同的路。您可以:

  • 通过阿帕奇为Django提供服务:

    • 修改python

      这是一种稳定的、推荐的/记录良好的方法。缺点:占用大量内存。

    • 模块wsgi

      据我所知,mod_wsgi是一个新的选择。它在资源上似乎更快更容易。

    • mod_fastcgi

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

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

或者你可以:

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

    (文档中提到,如果没有任何特定于Apache的需求,可以这样做。我想原因一定是为了节省记忆。)

    • 光点设计

    这是运行Youtube的服务器。它看起来又快又好用,不过我看过关于记事本的报道。

    • nginx

    我见过一些基准测试声称这个服务器甚至比lighttpd还要快。不过,大部分是用俄语记录的。

另外,由于Python中的限制,服务器应该以分叉模式运行,而不是线程模式。

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

我在用Cherokee

根据their benchmarks(含盐颗粒),它比Lighttpd和nginx都能更好地处理负载。。。但这不是我用它的原因。

我使用它是因为如果您键入cherokee-admin,它会启动一个新的服务器,您可以登录(使用一次性密码)并通过一个完成得非常漂亮的webmin配置整个服务器。这是一个杀手级的功能。它已经为我节省了不少时间。它节省了我的服务器很多资源!

至于django,我将它作为一个线程SCGI进程运行。效果很好。切罗基也能保持它的运转。同样,非常好的功能。

当前的Ubuntu repo版本很旧,所以我建议您使用their PPA。祝你好运。

相关问题 更多 >

    热门问题