为 Python Django 提供更好的 Web 服务器性能:Apache mod_wsgi 或 Lighttpd fastcgi

为 Python Django 提供更好的 Web 服务器性能:Apache mod_wsgi 或 Lighttpd fastcgi

我目前正在使用 Apache 和 mod_wsgi 运行一个高流量的 python/django 网站。我希望有更快的 Web 服务器配置,而且我听到了不少关于 lighttpd 和 fastcgi 的建议。这种设置是否比 apache+mod_wsgi 更快地为动态 django 页面提供服务(我已经确信 lighttpd 可以更好地为静态文件提供服务)?网上的基准测试要么进行得不好,要么没有定论,所以我正在寻找一些个人轶事。lighttpd + fastcgi 提供了哪些架构优势?我了解 lighttpd 使用 epoll,并且 fastcgi 进程将是多线程的。此外,拥有两个独立的进程(一个用于 lighttpd,一个用于 python 解释器)将大有裨益。

我知道 tornado 及其使用 epoll 和回调以更少的线程处理数千个文件描述符的能力。不过,我现在更喜欢坚持使用 django。

谢谢,

答案1

Web 服务器开销从来都不是动态请求的主要成本 - 数据库查询和复杂模板使用更多的资源,并且每个半像样的 Web 服务器每秒都可以处理数百个请求,甚至在 django 中使用空模板的 manage.py runserver 也可以。

只需选择您最熟悉的服务器即可。我已成功在 apache/mod_wsgi 上部署了一个网站,请参阅这个答案了解详情。

此外,“高流量”这个概念非常主观。用数字来表达会更有用。

答案2

您可以查看 Magnum Py(http://code.google.com/p/magnum-py/) 是一个基于 epoll 的 Web 服务器,可以通过 WSGI 接口与 Django 通信。

相关内容