Top.Mail.Ru
Публичное облако на базе 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 = ["*"]
Была ли статья полезна?
Ваша оценка очень важна
  • Ваш комментарий
  • Предпросмотр
Пока нет комментариев
Мы используем на сайте куки.
В интернете без них никак