Рубрики
Без рубрики

Готовое к производству приложение Django в Amazon Lightsail – Weblog

Эта статья основана на этой странице документации и этом видео, в котором Майк Коулман рассказывает нам, как развернуть приложение Django на Amazon Lightsail.

Автор оригинала: Tiago Peres 李大仁.

Эта статья основана на этой странице документации и этом видео где Майк Коулман рассказывает нам, как развернуть приложение Django на Amazon Lightsail. Также были рассмотрены две статьи из Bitnami ( Начало работы с Django и Развертывание проекта Django ).

1 – Начните с создания экземпляра.

2 – Выберите регион (в моем случае Лондон), проект Django, в котором уже установлено все необходимое для запуска приложения Django (Python, virtualenv, Django), сколько мы хотим заплатить за него (в данном случае 5 долларов) и дайте ему имя.

3 – Экземпляр теперь запущен и работает. Теперь нам нужно войти и установить наше приложение, и мы делаем это, запустив сеанс ssh.

4 – Каталоги, упомянутые в документации и в видео, не создаются чертежом. Давайте создадим новую папку для хранения ваших проектов Django, такую как каталог/home/bitnami/projects, и дадим разрешения на запись текущему системному пользователю ( как указано здесь ).

5 – Запустите проект Django ( django-admin.py учебник по startproject )

6 – Перейдите в каталог проекта учебника и создайте новое приложение hello_world ( python manage.py startapp hello_world )

7 – В tutorial/hello_world/views.py добавьте следующий код

из django.http импорт HttpResponse

индекс def(запрос): возврат HttpResponse(“Привет, мир”)

Примечание : Нажмите Esc, введите:wq! и нажмите Enter , чтобы сохранить и выйти из Vim.

8 – В tutorial/hello_world/urls.py добавьте следующий код из пути импорта django.utils . импорт представлений urlpatterns = [путь(", views.index,),]

9 – В tutorial/tutorial/urls.py замените код на этот from django.contrib import adminfrom django.urls import include, path `urlpatterns = [path(“, include(‘hello_world.urls’)), path(‘admin/’, admin.site.urls),]`

10 – По умолчанию Apache использует порт 80 на вашем экземпляре Lightsail, поэтому мы запустим веб-сервер Django на порту 8000. Чтобы получить доступ к веб-сайту, нам нужно открыть порт 8000 в брандмауэре Lightsail.

На главной странице Lightsail нажмите на имя экземпляра и в меню перейдите в раздел “Сеть”. В разделе “Брандмауэр” добавьте еще одно правило с 8000 в диапазоне портов.

11 – Теперь, в tutorial/turorial/settings.py добавьте общедоступный IP-адрес вашего экземпляра в ALLOWED_HOSTS.

12 – Перейдите в корень проекта,/tutorial, и запустите веб-сервер Django на порту 8000 python manage.py runserver 0.0.0.0:8000

Теперь мы видим “Привет, мир”, который подтверждает, что приложение запущено. Обратите внимание, что это сервер разработки ( Не рекомендуется запускать производственные приложения с помощью встроенного сервера Django ).

Итак, в качестве следующего шага мы хотим взять это приложение и разместить его на встроенном сервере Apache.

Мы сделаем это, настроив приложение для использования интерфейса шлюза веб-служб (WSGI), а затем создадим виртуальный хост Apache (vHost). Для этого сначала попробовал Подход B: Автономные установки Битнами но наткнулся на блокпост . Итак, я пошел с Подходом A: Установки Bitnami С использованием системных пакетов .

13 – Чтобы обслуживать приложение через веб-сервер Apache с модулем mod_wsgi, давайте начнем с редактирования/tutorial/tutorial/wsgi.py . Нажмите Esc, введите:1,$d и нажмите Enter, чтобы выбрать все и удалить существующее содержимое. Затем вставьте следующий код (замените tutorial именем вашего проекта) импорт ос из django.core.wsgi импорт get_wsgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE',()

14 – Установка Bitnami поставляется с предопределенными виртуальными хостами HTTP и HTTPS для запуска проектов Django с модулем mod_wsgi . Чтобы включить их, выполните следующие действия:

14.1 – Скопируйте файлы, чтобы удалить суффикс .disabled : cd/home/bitnami/stack/apache2/conf/vhosts/

sudo sample-vhost.conf.disabled tutorial-vhost.conf sudo cp sample-https-vhost.conf.disabled tutorial-https-vhost.conf

14.2 – Перезагрузите Apache, чтобы изменения вступили в силу: cd/home/bitnami/stack sudo ./ctlscript.sh перезагрузите apache

15 – Чтобы проект Django правильно работал в вашем веб-браузере, могут потребоваться некоторые дополнительные изменения. Откройте settings.py файл для проекта Django и выполните следующие действия: 15.1 – Отключить ОТЛАДКУ режим: ОТЛАДКА

15.2 – Установите параметр ALLOWED_HOSTS для удаленного доступа к проекту Django: ALLOWED_HOSTS = [ ' * ' ] #, если вы хотите получить публичный доступ

15.3 – Установите STATIC_URL и STATIC_ROOT для обслуживания статических файлов: STATIC_URL STATIC_ROOT.path.join(BASE_DIR, 'static') # для использования ОС вам также потребуется импортировать ее в начале файла импорт ОС

15.4 – Создание статических файлов, выполняющих следующую команду: python manage.py collectstatic --noinput

15.5 – Создание суперпользователя Django: python manage.py makemigrations python manage.py перенесите управление python.py создает суперпользователя

16 – Если предопределенные виртуальные хосты вам недоступны или вы предпочитаете применить пользовательскую конфигурацию, выполните следующие действия:

16.1 – Создайте и отредактируйте файл /home/bitnami/stack/apache2/conf/vhosts/tutorial-http-vhost.conf , удалите текущее содержимое (Esc, введите:1,$d и нажмите Enter, чтобы выбрать все и удалить существующее содержимое) и добавьте следующие строки (замените tutorial именем вашего проекта)


  Define IS_TUTORIAL_LOADED
  WSGIDaemonProcess tutorial python-home=/home/bitnami/stack/python python-path=/home/bitnami/projects/tutorial


  ServerAlias *
  WSGIProcessGroup tutorial
  Alias /robots.txt /home/bitnami/projects/tutorial/static/robots.txt
  Alias /favicon.ico /home/bitnami/projects/tutorial/static/favicon.ico
  Alias /static/ /home/bitnami/projects/tutorial/static/
  
    Require all granted
  
  WSGIScriptAlias / /home/bitnami/projects/tutorial/tutorial/wsgi.py
  
    
      Require all granted
    
  

16.2 – Создайте и отредактируйте файл /home/bitnami/stack/apache2/conf/vhosts/tutorial-https-vhost.conf и добавьте следующие строки (замените tutorial именем вашего проекта)


  Define IS_TUTORIAL_LOADED
  WSGIDaemonProcess tutorial python-home=/home/bitnami/stack/python python-path=/home/bitnami/projects/tutorial


  ServerAlias *
  SSLEngine on
  SSLCertificateFile "/home/bitnami/stack/apache2/conf/bitnami/certs/server.crt"
  SSLCertificateKeyFile "/home/bitnami/stack/apache2/conf/bitnami/certs/server.key"
  WSGIProcessGroup tutorial
  Alias /robots.txt /home/bitnami/projects/tutorial/static/robots.txt
  Alias /favicon.ico /home/bitnami/projects/tutorial/static/favicon.ico
  Alias /static/ /home/bitnami/projects/tutorial/static/
  
    Require all granted
  
  WSGIScriptAlias / /home/bitnami/projects/tutorial/tutorial/wsgi.py
  
    
      Require all granted
    
  

17 – Перезагрузите сервер Apache: cd/home/bitnami/stack sudo ./ctlscript.sh перезагрузите apache

18 – Как только все это будет сделано, вы можете перейти на IP-адрес вашего экземпляра, и вы увидите что-то вроде этого

Пожертвования идут на расходы по запуску веб-сайта и разработке нового контента.