I host many experimental projects on Heroku. I have always followed their example and used Gunicorn as my WSGI server. So when I saw this blog post, Don’t use Gunicorn to host your Django sites on Heroku
, I was curious. The author explains:

Gunicorn is a pure-Python HTTP server that’s widely used for deploying [python] sites in production. Heroku is an excellent (PAAS) provider, and recommends using Gunicorn to power your apps. Unfortunately, the process model of Gunicorn makes it unsuitable for running production Python sites on Heroku.

Apparently it’s not a good idea to use Gunicorn when you aren’t using a buffering reverse proxy, like Nginx. He recommends that you use Waitress.

Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library.

I recently used Waitress and it was quite easy to augment my usual Gunicorn stack with Waitress. For your next Heroku project you might think about using Waitress instead of Gunicorn.


Have comments? Send a tweet to @TheChangelog on Twitter.

Subscribe to The Changelog Weekly – our weekly email covering everything that hits our open source radar.