[CentralOH] Debian / Gunicorn

William McVey wam at cisco.com
Thu May 23 15:32:05 CEST 2013

On Wed, 2013-05-22 at 20:32 -0400, John Santiago wrote:
> Has anyone had any experience install gunicorn on debian. Trying to
> figure out the config. What is good set up for wsgi app?

I run most of my wsgi services (a combination of flask and django)
through gunicorn on Ubuntu. I always install gunicorn into the
virtualenv associated with my app/site, so installation is rarely more
than a 'pip install gunicorn' from within the appropriate virtualenv.
(Technically, I use chef to do this for me, but that's a tangent.) My
installations generally are organized under /srv/WEBSITE_NAME/ with
'venv' housing that site's (or app's) virtualenv, an 'app' directory
where I have the django site extracted (e.g. a manage.py, a 'static'
hierarchy, a 'templates' dir, a 'conf' dir holding my gunicorn config
file, etc.

Similar to Brandon, I user supervisord to launch gunicorn, although I
invoke it slightly different:

In /etc/supervisor.d/gunicorn_MY_APP.conf

        command=/srv/MY_APP_NAME/venv/bin/gunicorn_django --config /srv/MY_APP_NAME/app/conf/webserver.py /srv/MY_APP_NAME/app/MY_APP_site/settings.py

My gunicorn config file is webserver.py with variables like:

        # What ports/sockets to listen on, and what options for them.
        bind = ""
        # The maximum number of pending connections
        backlog = 2048
        # What the timeout for killing busy workers is, in seconds
        timeout = 180
        # How long to wait for requests on a Keep-Alive connection, in
        keepalive = 2
        # The maxium number of requests a worker will process before
        max_requests = 0
        # Whether the app should be pre-loaded
        preload_app = False
        # How many worker processes
        workers = 8
        # Type of worker to use
        worker_class = "sync"

The last argument to the command is the django settings.py file which I
assume you're familiar with.

  -- William

More information about the CentralOH mailing list