При разработке веб-приложения Django вы обычно используете
python manage.py runserver
Чтобы запустить встроенный веб-сервер Django и запустите его на поставке по умолчанию 8000. Этот сервер разработки автоматически перезапускается при изменении кода и легко запускаться без какой-либо конфигурации. Это идеально подходит для сервера разработки, поэтому, если вы хотите встать и работать с Django, используйте сервер разработки. Недостатком использования этого сервера является то, что он не построен для производства. Это медленно, и он не может обрабатывать много запросов одновременно.
Чтобы развернуть ваше веб-приложение для производства, вам нужен готовый веб-сервер, такой веб-сервер, такой как Apache или Nginx. Эти веб-серверы обычно не могут взаимодействовать с приложениями Python напрямую. Таким образом, первый шаг – установить и настроить сервер WSGI. Интерфейс Gateway Web Server (WSGI) является стандартом для разрешения веб-приложений, написанных на Python для связи с HTTP-серверами.
Gunicorn является примером сервера WSGI. В этой статье я покажу вам, как установить, настроить и запустить боевик
с приложением Django.
Виртуальная среда
Первый шаг – настроить вашу среду, создавая виртуальную среду и устанавливая Django и Gunicorn. Я использую Linux, и мой любимый способ создать виртуальную среду – использовать встроенный венчание
модуль:
$ sudo apt-get install python3-venv $ python3 -m venv .venv $ source .venv/bin/activate
Как только виртуальная среда создана и активирована, установите Django и Gunicorn:
$ pip install django $ pip install gunicorn
Далее создайте новый проект Django под названием MyProject
Обратите внимание на период (“.”) В конце концов:
$ django-admin startproject myproject .
Теперь подтвердите, что вы можете запустить проект с помощью сервера Gunicorn:
gunicorn myproject.wsgi
Gunicorn принимает аргумент, который является названием приложения, которое он должен работать. Для проектов Django укажите его в файл WSGI в каталоге проекта. Вы увидите вывод, похожий на это:
[2021-06-03 21:48:52 +0200] [8618] [INFO] Starting gunicorn 20.1.0 [2021-06-03 21:48:52 +0200] [8618] [INFO] Listening at: http://127.0.0.1:8000 (8618) [2021-06-03 21:48:52 +0200] [8618] [INFO] Using worker: sync [2021-06-03 21:48:52 +0200] [8620] [INFO] Booting worker with pid: 8620
Откройте свой браузер и перейдите к http://127.0.0.1:8000. . Если все работало, как ожидалось, вы должны увидеть этот знакомый экран:
Настройка боевиков
В последнем разделе вы видели, что можно запустить боевик
из командной строки без многих аргументов. На самом деле вы захотите запустить боевик
С параметрами для контроля таких вещей, как журнал, отладки, SSL и количество работников для использования. Хотя можно пройти много из этих параметров к боевик
Скрипт на командной строке, легче сделать это через файл конфигурации.
Создать боевик
Config файл, вы можете создать каталог с именем config
В вашем корневом проекте (тот же уровень, что и Manage.py
) И в нем создайте файл с .py
Расширение файла и вызовите его все, что вам нравится. Конвенция – это назвать это Gunicorn.conf.py.
. Это то, где вы добавите любые допустимые настройки или параметры, которые вы хотите использовать для настройки боевик
сервер.
У меня есть мой проект настроен так:
# gunicorn.conf.py command = "/home/vndlovu/django/.venv/bin/gunicorn" pythonpath = "/home/vndlovu/django/myproject" bind = "0.0.0.0:8000" workers = 3
Первая настройка, команда
это путь к боевик
исполняемый. Gunicorn устанавливается в виртуальной среде в Bin
папка по умолчанию. Следующая строка указывает путь к добавлению в путь Python. Это в основном путь к вашему рабочему каталогу. Bind
Обстановка рассказывает боевик
Какой IP и порт он должен слушать. Вы также можете привязать боевик
в сокет Unix здесь. Последняя настройка – количество рабочих процессов, которые боевик
следует использовать для обработки запросов.
Используя эти новые настройки, теперь вы можете запустить боевик
Сюда:
$ gunicorn -c conf/gunicorn.conf.py myproject.wsgi
Вывод
Этот пост показал, как установить, настроить и обслуживать приложения с помощью Gunicorn. Gunicorn полезно для перевода HTTP-запросов в Python, но этого недостаточно. В большинстве случаев вы хотели бы иметь веб-сервер, выступающий в качестве входной точки для публики. Веб-сервер будет обрабатывать HTTP-запросы. В следующей статье в этой серии я покажу вам, как настроить веб-сервер Nginx.
Оригинал: “https://dev.to/vndlovu/setting-up-django-for-deployment-gunicorn-3adh”