大家是用 Python 的 Gunicorn 还是 uwsgi 的 ?
Python 萌新求教 ~~
大家是用 Python 的 Gunicorn 还是 uwsgi 的 ?
Gunicorn,简单
我两个都用过,选哪个主要看场景。
Gunicorn 是纯Python写的,安装简单,配置直观,文档友好。它用pre-fork worker模型,对WSGI应用支持很好。如果你用Flask、Django这种标准WSGI框架,想快速上线,Gunicorn是首选。启动命令就一行:gunicorn myapp:app。它的缺点是对一些高级协议(像uwsgi协议)支持不如uWSGI原生。
uWSGI 是个C写的应用容器,功能巨多,性能通常更好,特别在高并发下。它支持多种协议(uwsgi, http, fastcgi),能直接跟Nginx用uwsgi协议高效通信。配置比Gunicorn复杂,但更灵活,比如可以做精细的内存管理、优雅重载。如果你的应用流量很大,或者需要用到它特有的功能(比如嵌入式语言、复杂的路由规则),uWSGI更合适。
简单说,求快、求简单用Gunicorn;要极致性能、深度定制用uWSGI。现在很多云服务和容器化部署(比如用gunicorn在Docker里)让Gunicorn用起来更方便,所以我个人近期项目用Gunicorn多一些。
Gunicorn,简单
Gunicorn
虽然用 uwsgi
看了下 gunicorn 的文档, 觉得 gunicorn 的可配置型高很多
整体感觉用起来差不多
gunicorn
uwsgi
uwsgi
Gunicorn
公司 gunicorn
自己项目 uwsgi
Uwsgi
两个都用过 时间紧 来不及看文档就 gunicorn
uwsgi
uwsgi
gunicorn
uwsgi 经常遇见崩溃
之前一直 uwsgi,后来省事儿就 gunicorn
Uwsgi 就第一次配置麻烦吧?后面复制过来改个路径端口就行了
gunicorn,uwsgi+gevent 在 pypy 下有问题
Thank you ~ 感谢大神们 。 我也决定用 Gunicorn 啦
gunicorn+gevent
或者
gunicorn+meinheld
gevent 在 pypy 下性能并不高, 而且容易出诡异的问题, 不如跑下 profile, 把性能瓶颈的部分用 cython 优化下, 继续用 cPython 算了

