我在我nginx + fastcgi
的一些 Django 项目的生产中使用(manage.py runfcgi ...)。很多人建议使用nginx + gunicorn
. 使用gunicorn而不是使用 Django 的fastcgi
服务器有什么好处?
2 回答
我只是告诉您为什么需要使用类似 WSGI 的服务器 :) 但是如果您对使用 fcgi 感到满意 - 只需使用它
简短回答:WSGI(作为协议)很酷,因为它是原生的
或者如果“你需要更深入”(c)
下一个问题“FastCGI 与类似 WSGI 的服务器?”
这里有一些答案:
- WSGI、CGI、FastCGI 和 mod_python 在 Python 方面的区别和用途?
- scgi和wsgi有什么区别?
- WSGI 和 FCGI 之间有速度差异吗?
- Python Web 框架、WSGI 和 CGI 如何组合在一起
关于 gunicorn、uWSGI 和 cherokee、nginx。不要混合它们!
nginx 是可以处理 http 请求并将其发送到 WSGI 后端的网络服务器。(但首先它对于静态内容处理非常快。)WSGI 后端处理你的 django 应用程序。
关于 cherokee,我认为它处理与 nginx 相同的任务,但我不使用它。
gunicorn、uWSGI 是 WSGI 后端,它使用 django 应用程序运行线程并执行许多其他任务
嗯,gunicorn 这么说
作为仅在类 Unix 平台上运行的服务器,unicorn 与 Unix 哲学紧密相连,即做一件事并(希望)做好它。尽管使用 HTTP,unicorn 严格来说是一个后端应用服务器,用于运行基于 Rack 的Ruby 应用程序。
我为我的 django 应用练习 nginx(来自 nginx.org repos 的最新稳定版)+uWSGI(来自 Debian 稳定版) - 完美运行 :)
2012 年 5 月 18 日编辑
通过比较fcgi gunicorn uWSGI链接到 2010 主题
fcgi(线程)640 r/s
fcgi(prefork 4 处理器)240 r/s (*)
gunicorn (2名工人) 1100 r/s
gunicorn (5名工人) 1300 r/s
gunicorn (10 名工人) 1200 r/s (?!?)
uwsgi(2 名工人)1800 转/秒
uwsgi(5 名工人)2100 转/秒
uwsgi(10 名工人)2300 转/秒
(* 这使我的计算机在通过屋顶时作为 CPU 异常缓慢)
正如 b1- 所说,WSGI 是原生的(看看这篇文章)。
另外,这篇文章也有类似的问题。
从我个人的角度来看,前段时间我一直在 vhost 模式下使用 Nginx + uwsg 在我的服务器上运行各种项目。