<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Деплой приложения Django

Пример Django-приложения для деплоя можно найти на Гитхабе. Также у нас есть туториал с практическим примером развертывания Django-приложения в Apps.

Сборка приложения

При сборке приложения используется следующая среда:

  • Python 3.8
  • pip
  • gunicorn
  • Системные библиотеки для работы с PostgreSQL и MySQL

По умолчанию во время сборки будут выполнены следующие команды:

apt-get install -y python3 python3-pip gunicorn python3-psycopg2 libpq-dev python-dev default-mysql-client python3-dev default-libmysqlclient-dev python3-mysqldb --fix-missing
pip3 install psycopg2 django
ln /usr/bin/python3 /usr/bin/python -sf
ln /usr/bin/pip3 /usr/bin/pip -sf

Если в проекте присутствует файл requirements.txt, дополнительно будет выполнено:

pip3 install --upgrade -r requirements.txt

Для запуска по умолчанию используется команда:

python3 manage.py runserver 0.0.0.0:8000

Убедитесь, что файл manage.py находится в корне проекта и используется как точка входа в приложение.

Также вы можете задать переменные. Например, можно задать хосты, с которых Django может получать запросы. Для этого укажите ключ DJANGO_ALLOWED_HOSTS, а в значении задайте IP-адреса или хостнеймы. Можно указать несколько хостов через запятую, без пробелов. По умолчанию эта переменная принимает значение 127.0.0.1,localhost.

Для Django-приложений необходимо обязательно указать в настройках DEBUG=True, иначе статика не будет раздаваться.

Подробнее о настройках можно почитать в документации Django.

Устранение неполадок

Не удается выполнить развертывание

Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так. 

Зачастую проблемы связаны с командой запуска. Проверьте, что всё в вашей среде разработки работает с gunicorn. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле requirements.txt.

DisallowedHost at /Invalid HTTP_HOST

Проблема возникает в случае, если в файле settings.py не задано имя хоста. 

Данная настройка является мерой безопасности для предотвращения атак с подменой HTTP-заголовка Host (HTTP Host header attacks).

Для устранения проблемы нужно внести изменения в файл settings.py, указав в директиве ALLOWED_HOSTS используемый вами домен, например:

ALLOWED_HOSTS = ["your.domain.com"]

Вы также можете разрешить все домены, если не хотите использовать эту меру безопасности: 

ALLOWED_HOSTS = ["*"]
Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев