大家是用 Python 的 Gunicorn 还是 uwsgi 的 ?

Python 萌新求教 ~~


大家是用 Python 的 Gunicorn 还是 uwsgi 的 ?
21 回复

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,简单

虽然用 uwsgi
看了下 gunicorn 的文档, 觉得 gunicorn 的可配置型高很多
整体感觉用起来差不多

gunicorn

公司 gunicorn


自己项目 uwsgi

两个都用过 时间紧 来不及看文档就 gunicorn

gunicorn

uwsgi 经常遇见崩溃

之前一直 uwsgi,后来省事儿就 gunicorn

Uwsgi 就第一次配置麻烦吧?后面复制过来改个路径端口就行了

gunicorn,uwsgi+gevent 在 pypy 下有问题

Thank you ~ 感谢大神们 。 我也决定用 Gunicorn 啦

gunicorn+gevent
或者
gunicorn+meinheld

gevent 在 pypy 下性能并不高, 而且容易出诡异的问题, 不如跑下 profile, 把性能瓶颈的部分用 cython 优化下, 继续用 cPython 算了

回到顶部