我即将部署一个由Django提供动力的中型站点。我有一个专用的Ubuntu服务器。
我真的很困惑该使用哪种服务器软件。于是我心里想:为什么不问问堆积如山。
我要找的是:
我听说过关于Apache、nginx和lighty的mod_wsgi和mod_python。这些东西的利弊是哪一个,我有没有错过一个人?
@Barry:不知何故,我觉得阿帕奇对我来说太臃肿了。其他选择呢?
@BrianLy:好的,我再看看mod_wsgi。但是,如果我使用with提供静态文件,为什么需要Apache呢?我还设法使用lighty为django应用程序提供服务。这有什么不好吗?很抱歉这么蠢:-)
UPDATE:lighty和nginx --这是什么用途--在这些是完美选择的情况下,情况如何?
发布于 2008-08-27 08:41:53
因为我在寻找更深入的答案,所以我决定自己深入研究这个问题。如果我误解了什么,请告诉我。
一些一般性建议是使用单独的are服务器来处理媒体。分离,我指的是不运行Django的not服务器。例如,此服务器可以是:
然后,对于Django,您可以选择不同的路径。你可以:
- **mod\_python**--这是一种稳定的、推荐的/有详细文档的方法。缺点:使用大量内存。
- mod_wsgi
据我所知,mod_wsgi是一个较新的替代方案。在资源方面,这似乎更快、更容易。
- mod_fastcgi
在使用FastCGI时,您正在将Django的服务委托给另一个进程。由于mod_python在每个请求中都包含一个python解释器,所以它使用了大量的内存。这是一个绕过这个问题的方法。还有一些安全问题。
您所做的就是在一个单独的进程中启动Django FastCGI服务器,然后通过重写配置Apache以便在需要时调用这个进程。
或者你可以:
- **Lighttpd**这是运行Youtube的服务器。它看起来既快又容易使用,但是我已经看到了关于内存泄漏的报告。
- **nginx**我见过一些基准测试,声称这个服务器比lighttpd还要快。不过,大部分都是用俄语记录的。
另外,由于Python的限制,您的服务器应该以分叉模式运行,而不是在线程模式下运行。
因此,这是我目前的研究,但我想要更多的意见和经验。
发布于 2008-12-09 17:08:28
我在用切诺基人。
根据他们的基准 (与它们一起使用的盐粒),它处理负载的能力比莱特和尼克斯都要好。但这不是我用它的原因。
我使用它是因为如果您输入cherokee-admin,它将启动一个新服务器,您可以登录(使用一个一次性密码),并通过一个做得很好的webmin来配置整个服务器。这是个杀手的特征。它已经为我节省了很多时间。它为我的服务器节省了很多资源!
至于django,我将它作为一个线程SCGI进程运行。效果很好。切诺基也能让它运转。再一次,非常好的特征。
当前的Ubuntu版本非常老,所以我建议您使用他们的PPA。祝好运。
发布于 2008-08-25 14:00:27
正如@Barry所说,文档使用python。我没有使用Ubuntu作为服务器,但在Solaris上使用mod_wsgi有很好的经验。您可以在wsgi和Django站点上找到有关wsgi的文档。
快速回顾一下您的需求:
https://stackoverflow.com/questions/26025
复制相似问题