哪个最适合Django?Lighttpd还是Nginx?也许还有其他东西?[关闭]


18

根据您的经验,Lighttpd和Nginx中的哪一个更适合Django?我已经使用了这两种方法,几乎​​没有注意到任何区别,它们只是工作得很好...是否有任何用例中的一种比另一种表现好得多?回答时,请同时考虑配置的简便性和效率。

我通常的设置是./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1通过daemontools或init.d脚本和lighty / nginx作为反向代理启动一个单独的Django FCGI进程(如中的)。

哦,如果您觉得对于Django,其他HTTP服务器要比Lighty和Nginx好得多,请不要犹豫,分享您的想法。


如果fastcgi服务终止,daemontools supervise将在五秒钟内重新启动它,因此该服务已备份。但是您在那里仍然有很少的停机时间。在我的部署中,我发现fastcgi脆弱,在轻微的压力下意外停止。几次停机后,再加上客户打来的尴尬电话,我将Nginx切换到Apache mod_wsgi的反向代理,从那以后一切都一片混乱。

Answers:


14

在将它们用作Django,Rails等的反向代理时,与apache相比,Nginx和Lighttpd都是更好的选择。两者均支持FastCGI和Http代理。两者都提供了基于单线程select()(或更好)的模型,以有效利用资源。

但是,我的投票投向了Nginx,它拥有非常活跃的用户群(目前是Ruby on Rails集的宠儿),并且正在积极开发中。Lighttpd可能会被误认为已经死了,已经超过2年,而我们仍在等待beta 1.5。


7

建议使用mod_wsgi将Django应用程序投入生产。Apache的mod_wsgi比nginx更好。在nginx的mod_wsgi中找不到官方软件包(在当前Linux发行版中),您需要自己编译。我喜欢nginx,但如果您想安全玩,请使用Apache mod_wsgi。


2
Nginx mod_wsgi不是您要使用的东西。Nginx最好提供静态内容,并向Apache mod_wsgi反向代理以生成动态内容。您不希望使用异步Web服务器来生成动态页面和提供静态内容。单独使用Apache mod_wsgi也没有多大意义。您不希望那只野兽忙于在静态文件周围喷洒东西,而这本来可以使它沉重。在此处了解更多信息b-list.org/weblog/2008/jun/23/media

5

mod-wsgi是在生产环境中运行django应用程序的最佳方法,它比fastcgi灵活得多,并且没有启动时间等问题。

真正的mod-wsgi用于Apache,但是还有另一个mod-wsgi用于nginx。apache很棒,我无法评论nginx。

就个人而言,我将远离lighttpd。它没有nginx的稳定性,我还没有看到没有内存泄漏的lighttpd案例。

基本上,我的第一选择是apache 2.2,我的第二选择是nginx。

不要相信有关响应时间和可伸缩性的炒作。事实是,没关系。(Google使用Apache)。


Google使用GWS(en.wikipedia.org/wiki/Google_Web_Server)而不是Apache。雅虎使用Apache,但是它是1.3的古老分支。
戴夫·切尼

YouTube使用或至少使用过lighttpd,所以我认为它不是很糟糕。请参阅highscalability.com/youtube-architecture
Cristian Ciupitu 09年

是的,尽管GWS是一个秘密项目,但众所周知它是基于Apache的。

YT并不是说他们有自己的轻叉。确实lighty有一个众所周知的内存泄漏问题。我相信他们现在可能已经修复它,但是代表仍然坚持。
Abhishek Dujari 2012年

2

另外,请考虑使用Google App Engine。您可以在那里免费托管Django项目,而不必担心维护服务器基础结构。


8
Django在GAE上有很大的局限性,例如不支持Django的datbase / ORM功能。如果它满足您的需求,那就很好-但请仔细检查!

我相信GAE现在支持MySQL,因此我认为ORM也将受到支持。虽然是真的,但我没有尝试的经验。没有ORM的Django就像没有种子的色情片。
Abhishek Dujari 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.