更好的Python Django Web服务器性能:Apache mod_wsgi还是Lighttpd fastcgi?

3
我目前正在运行一个高流量的Python/Django网站,使用Apache和mod_wsgi。我希望能够找到更快的Web服务器配置方式,我听说很多人推荐lighttpd和fastcgi。这种设置对于提供动态Django页面是否比apache+mod_wsgi更快(我已经确信lighttpd可以更好地提供静态文件)?在线基准测试要么做得很差,要么没有明确结论,因此我在寻找一些个人见解。lighttpd + fastcgi有什么架构优点?我知道lighttpd使用epoll,并且fastcgi进程将是多线程的。此外,为lighttpd和Python解释器分别开两个进程,将大大有益。

我知道Tornado以及它使用epoll和回调处理少量线程来处理数千个文件描述符的能力。但是,我现在更倾向于使用Django。

谢谢,


你可能想考虑使用nginx+fastcgi。与lighttpd相比,它更快速且不易出现错误。 - Joshua Partogi
4个回答

4

我建议使用nginxsuperfcgi来处理高负载的网站。nginx对于静态文件非常快速。superfcgi使用多个进程和多个线程,在尽管有GIL的情况下,对于Python应用程序表现出高稳定性,只需要将进程数设置为服务器的CPU核心数。


1

我没有详细的基准测试数据,但我个人认为,就像 lighttpd 在简单任务上可以胜过 apache 一样,mod_wsgi 在提供 Python Web 应用程序方面给了 apache 荣誉。(nginx 带有 自己的 mod_wsgi 似乎比 apache 表现得更好,但是,嘿,你没有问到 那个!-)。


9
nginx/mod_wsgi模块在多进程配置中使用WSGI系统时也存在潜在问题,就像直接在事件系统上运行任何WSGI系统一样。请参见'http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html'。 - Graham Dumpleton

1

这并不是回答你的问题,但是你是否已经在你的网站上使用了缓存,比如memcached?这可能会比切换Web服务器的麻烦给你带来更好的性能提升。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接