[CentralOH] Debian / Gunicorn
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
Similar to Brandon, I user supervisord to launch gunicorn, although I
invoke it slightly different:
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 = "0.0.0.0:8000"
# 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.
More information about the CentralOH