gevent + gunicorn是否可扩展且稳定用于生产?

sul*_*ing 5 python webserver tornado gevent gunicorn

我一直在研究提供可扩展性的python web服务器,并决定使用Tornado(由Facebook FriendFeed使用)或Gevent.由于我对此很陌生,我依靠Python Web服务器基准来列出Tornado和Gevent.此外,经过进一步研究,我发现:

  • Gevent不是一个独立的Web服务器,我们需要使用libevent或gunicorn作为Web服务器.
  • libevent有它的缺陷,例如不支持SSL,流媒体,保持活动和websockets.
  • 没有基准测试结果,我可以找到哪些文件gevent和gunicorn的性能一起使用.
  • gevent的作者本人建议大家使用gevent + gunicorn进行实际部署.

我的要求:

  • 高度可扩展的异步python Web服务器.
  • 包括SSL支持.

由于其基于greenlet的方法,我特别倾向于gevent .我只是想要一些确凿的事实来证明gunicorn + gevent是一个不错的选择,并且在与Tornado的联盟中具有高度的可扩展性.或者是否有其他符合我要求的python web服务器?

请指出我正确的方向.

Elv*_*uza 12

在撰写本文时,Gunicorn处于测试阶段(版本0.16),而Gevent有1.0 的发布候选版本(Google Groups上的公告),因此预计API的更改可能是合理的(对于Gevent而言则更少).当您跟踪邮件列表(此处:gunicorn,gevent)以查找可能会破坏您的应用程序的更改时,您应该可以使用生产部署

Gunicorn + Gevent是异步python Web服务器的不错选择.您应该执行自己的测试以将其与Tornado进行比较.公开可用的基准测试可能会产生误导,因为您的应用程序可能不像那些进行基准测试的那样.

对于SSL支持,GunicornTornado都建议您在反向代理(例如nginx)后面运行它们.在反向代理后面运行它们的其他优点包括改进慢速客户端的处理和错误的HTTP请求

  • 很好的答案.对于那些可能阅读它的人来说只是一个编辑*今天*:Gunicorn现在提供SSL支持. (2认同)