Reputation: 1116
I have been looking at python web servers which offer scalability and decided to go with either Tornado (used by Facebook FriendFeed) or Gevent. Since I am pretty new to this, I relied on the Benchmark of Python Web Servers to shortlist Tornado and Gevent. Moreover, after further research I found out that:
My requirements:
I am particularly more inclined towards gevent because of its greenlet based approach. I just want some hard facts to prove that gunicorn + gevent is a good choice and is highly scalable, in league with Tornado. Or is there any other python web server which meets my requirements?
Do point me in the right direction.
Upvotes: 7
Views: 6474
Reputation: 2313
As of this writing, Gunicorn is in beta (version 0.16) and Gevent has a release candidate for 1.0 (Announcement on Google Groups), so it might be reasonable to expect changes in the API (less so for Gevent) That said, as long as you track the mailing lists (here: gunicorn, gevent) for changes that could break your application, you should be fine with a production deployment
Gunicorn+Gevent is a good choice for an asynchronous python web server. You should perform your own tests to compare it with Tornado. Publicly available benchmarking tests might be misleading since your application may not behave as those subjected to benchmarking.
For SSL support, both Gunicorn and Tornado recommend you run them behind a reverse proxy such as nginx. Additional advantages of running them behind a reverse proxy include improved handling of slow clients and bad HTTP requests
Upvotes: 13