使用FastCGI或mod_python运行Django
你推荐哪个呢?哪个更快、更可靠?是Apache的mod_python,还是nginx/lighttpd的FastCGI?
7 个回答
5
Nginx和mod_wsgi的结合
6
使用lighttpd配合FastCGI,理论上会快一点,但实际上,运行你的Python代码和数据库操作所花的时间,远远超过了不同网页服务器之间的性能差异。
如果你想在django之外写一些代码,比如处理消化认证或者设置一些复杂的HTTP头,mod_python和apache会给你更多的灵活性。也许你还想用apache的一些内置功能,比如mod_rewrite。
如果你担心内存问题,尽量避免使用apache和mod_python会有很大帮助。因为apache通常会占用很多内存,而mod_python代码也会占用不少内存空间。此外,apache是多进程的,每个进程会根据最耗资源的请求来增长,这样也会消耗更多的内存。
21
我之前用过这两种方式,发现Apache/mod_python更容易上手,也更稳定。不过现在我转向了Apache/mod_wsgi,这个东西真的是我一直想要的,甚至更多:
- 管理后台进程很简单。
- 因此,隔离性好得多(在同一个Apache配置下用mod_python运行多个网站,几乎总是会出问题——环境变量和C扩展会在网站之间互相影响)。
- 代码重载很方便(只要设置得当,你可以简单地修改一下
.wsgi
文件来重载,而不需要重启Apache)。 - 资源使用更可预测。用mod_python时,Apache的子进程内存使用情况可能会波动很大。而用mod_wsgi就比较稳定:一旦所有东西加载完毕,你就知道它会用多少内存。