2011-10-22 06:30:10 +02:00
|
|
|
|
===============================
|
|
|
|
|
How to use Django with Gunicorn
|
|
|
|
|
===============================
|
|
|
|
|
|
|
|
|
|
.. highlight:: bash
|
|
|
|
|
|
|
|
|
|
Gunicorn_ ('Green Unicorn') is a pure-Python WSGI server for UNIX. It has no
|
|
|
|
|
dependencies and is easy to install and use.
|
|
|
|
|
|
|
|
|
|
.. _Gunicorn: http://gunicorn.org/
|
|
|
|
|
|
|
|
|
|
There are two ways to use Gunicorn with Django. One is to have Gunicorn treat
|
|
|
|
|
Django as just another WSGI application. The second is to use Gunicorn's
|
|
|
|
|
special `integration with Django`_.
|
|
|
|
|
|
2013-12-08 18:39:26 +01:00
|
|
|
|
.. _integration with Django: http://docs.gunicorn.org/en/latest/run.html#django-manage-py
|
2011-10-22 06:30:10 +02:00
|
|
|
|
|
|
|
|
|
Installing Gunicorn
|
|
|
|
|
===================
|
|
|
|
|
|
2012-03-03 10:11:54 +01:00
|
|
|
|
Installing gunicorn is as easy as ``sudo pip install gunicorn``. For more
|
|
|
|
|
details, see the `gunicorn documentation`_.
|
2011-10-22 06:30:10 +02:00
|
|
|
|
|
|
|
|
|
.. _gunicorn documentation: http://gunicorn.org/install.html
|
|
|
|
|
|
|
|
|
|
Running Django in Gunicorn as a generic WSGI application
|
|
|
|
|
========================================================
|
|
|
|
|
|
|
|
|
|
When Gunicorn is installed, a ``gunicorn`` command is available which starts
|
|
|
|
|
the Gunicorn server process. At its simplest, gunicorn just needs to be called
|
2014-02-27 08:27:40 +01:00
|
|
|
|
with the location of a WSGI application object.::
|
2011-10-22 06:30:10 +02:00
|
|
|
|
|
|
|
|
|
gunicorn [OPTIONS] APP_MODULE
|
|
|
|
|
|
|
|
|
|
Where ``APP_MODULE`` is of the pattern ``MODULE_NAME:VARIABLE_NAME``. The
|
|
|
|
|
module name should be a full dotted path. The variable name refers to a WSGI
|
|
|
|
|
callable that should be found in the specified module.
|
|
|
|
|
|
|
|
|
|
So for a typical Django project, invoking gunicorn would look like::
|
|
|
|
|
|
|
|
|
|
gunicorn myproject.wsgi:application
|
|
|
|
|
|
|
|
|
|
(This requires that your project be on the Python path; the simplest way to
|
|
|
|
|
ensure that is to run this command from the same directory as your
|
|
|
|
|
``manage.py`` file.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Using Gunicorn's Django integration
|
|
|
|
|
===================================
|
|
|
|
|
|
2013-01-22 22:15:52 +01:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
If you are using Django 1.4 or newer, it’s highly recommended to simply run
|
|
|
|
|
your application with the WSGI interface using the ``gunicorn`` command
|
|
|
|
|
as described above.
|
|
|
|
|
|
2011-10-22 06:30:10 +02:00
|
|
|
|
To use Gunicorn's built-in Django integration, first add ``"gunicorn"`` to
|
|
|
|
|
:setting:`INSTALLED_APPS`. Then run ``python manage.py run_gunicorn``.
|
|
|
|
|
|
|
|
|
|
This provides a few Django-specific niceties:
|
|
|
|
|
|
|
|
|
|
* sets the gunicorn process name to be that of the project
|
|
|
|
|
|
|
|
|
|
* validates installed models
|
|
|
|
|
|
|
|
|
|
* allows an ``--adminmedia`` option for passing in the location of the
|
2012-04-08 23:13:32 +02:00
|
|
|
|
admin media files.
|
2011-10-22 06:30:10 +02:00
|
|
|
|
|
|
|
|
|
See Gunicorn's `deployment documentation`_ for additional tips on starting and
|
|
|
|
|
maintaining the Gunicorn server.
|
|
|
|
|
|
|
|
|
|
.. _deployment documentation: http://gunicorn.org/deploy.html
|