Существует 3 способа запуска приложения django с помощью gunicorn:
-
Стандарт
gunicorn
+wsgi
(ref django doc)gunicorn project.wsgi:application
-
Использование интеграции пуэрстона django (ref gunicorn doc и django doc):
python manage.py run_gunicorn
-
Использование команды
gunicorn_django
(ref gunicorn doc)gunicorn_django [OPTIONS] [SETTINGS_PATH]
Документация Django предлагает использовать 1., который даже не указан в документации по Gunicorn.
Есть ли какая-либо лучшая практика для наилучшего способа запуска приложения django с помощью gunicorn, и каковы преимущества или недостатки этих различных решений?
Взглянув на код увольнения, похоже, что они почти все делают то же самое: 2. похоже, создается приложение wsgi, используя django internals и 3. использует 2.
Если это так, я даже не пойму, в чем причина не просто использовать "1.", все время, тем более что файл wsgi.py
автоакпируется для вас с django 1.4; если это правда, возможно, просто рекомендуется улучшить документацию...
Кроме того, лучшая практика для настроек пушки с django будет отличной. Используя 1., имеет смысл установить некоторые значения по умолчанию в файле wsgi и избежать дополнительных настроек?
Литература:
- Должен ли я использовать интеграцию django-gunicorn или wsgi? только для вариантов выбора 1. и 3. нет никаких намеков на настройки, и ответ не дает никакого обоснования
- Развертывание Django с помощью gunicorn и nginx дает более широкую информацию, но не имеет строгого отношения и не отвечает на этот вопрос.
- Django Gunicorn wsgi о версии "4", которая запускает
gunicorn -c configfile
, и configfile укажет на django_settings на django - Django WSGI и Gunicorn немного путают:) смешивание 1. и 3. Конечно
wsgi.py
используется только с 1.