[Python, Django, Nginx] Развертывание приложений Django
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
ВведениеПосле того, как мы закончили разработку веб-приложения, оно должно быть размещено на хосте, чтобы общественность могла получить доступ к нему из любого места. Мы посмотрим, как развернуть и разместить приложение на экземпляре AWS EC2, используя Nginx в качестве веб-сервера и Gunicorn в качестве WSGI.AWS EC2Amazon Elastic Compute Cloud (Amazon EC2) - это веб-сервис, обеспечивающий масштабируемость вычислительных мощностей в облаке. Мы устанавливаем и размещаем наши веб-приложения на экземпляре EC2 после выбора AMI (OS) по нашему усмотрению. Подробнее об этом мы поговорим в следующих разделах.NGINX
Nginx - это веб-сервер с открытым исходным кодом. Мы будем использовать Nginx для сервера наших веб-страниц по мере необходимости.GUNICORN Gunicorn - это серверная реализация интерфейса шлюза Web Server Gateway Interface (WSGI), который обычно используется для запуска веб-приложений Python.WSGI - используется для переадресации запроса с веб-сервера на Python бэкэнд.
Мы не будем использовать сервер, который поставляется с django по умолчанию в производстве.
Развертывание приложенияМы запустим EC2 экземпляр на AWS, для этого войдите в консоль aws.
- Выберите EC2 из всех сервисов
- Выберите запуск New instance и выберите Ubuntu из списка.
- Выберите любой из экземпляров, каждый из них имеет различные конфигурации, мы выберем тот, который имеет свободный уровень.
- Теперь настройте группы безопасности и откройте порты 8000 и 9000, так как мы будем использовать эти порты . Просмотрите и запустите ваш экземпляр, может потребоваться некоторое время, чтобы он запустился.
Подключение к ЭкземпляруМы можем подключиться к экземпляру, используя опцию 'connect' в консоли (или с помощью putty или любого другого подобного инструмента ). После подключения запустите следующие команды
sudo apt-get update
Установите python , pip и django
sudo apt install python
sudo apt install python3-pip
pip3 install django
Теперь, когда мы установили наши зависимости, мы можем создать папку, в которую мы скопируем наше приложение django.
cd /home/ubuntu/
mkdir Project
cd Project
mkdir ProjectName
cd ProjectName
Теперь мы поместим наш код по следующему пути.
/home/ubuntu/Project/ProjectName GitHub Убедитесь, что ваш код находится в репозитории, чтобы мы могли легко втянуть его в наш экземпляр ec2.
- Перейдите в только что созданную папку ( /home/ubuntu/Project/ProjectName/ )
- git clone <repository-url>
Это клонирует репозиторий в папку, и в следующий раз мы сможем просто вытащить изменения с помощью git pull.Settings.py Файл.Мы должны внести некоторые изменения в settings.py в нашем проекте.
- Вставьте свои секретные ключи и пароли в переменные окружения
- Установить Debug = False
- Добавте Ваш домейн в ALLOWED_HOSTS
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, “static”)
Выполните следующие действия, чтобы миграция модели произошла и все статические файлы были собраны в общую папку (путь указан в STATIC_ROOT).
manage.py makemigrations
manage.py migrate
manage.py collectstatic
Установка NginxДля установки Nginx выполните команду
sudo apt install nginx
Есть конфигурационный файл с именем по умолчанию в /etc/nginx/sites-enabled/, который имеет базовую настройку для NGINX, мы отредактируем этот файл.
sudo vi default
Файл будет выглядеть так после добавления необходимой конфигурации, а остальная часть файла останется такой же.
мы добавим proxy_pass http://0.0.0.0:9000 и укажем путь к нашей статической папке, добавив путь внутри каталога /static/, как указано выше. Убедитесь, что вы собрали все статические файлы в общую папку, запустив команду
manage.py collectstatic
Теперь запустите сервер nginx
sudo service nginx start #to start nginx
sudo service nginx stop #to stop nginx
sudo service nginx restart #to restart nginx
Установка Gunicorn
pip install gunicorn
Убедитесь, что Вы находитесь в папке проекта, например: /home/ubuntu/Project, и запустите следующую команду, чтобы запустить gunicorn
gunicorn ProjectName.wsgi:application- -bind 0.0.0.0:9000
Теперь, когда мы установили и настроили nginx и gunicorn, к нашему приложению можно получить доступ через DNS экземпляра ec2.
===========
Источник:
habr.com
===========
Похожие новости:
- [Python] Обработка и анализ текстов на Python и Spark NLP
- [Python, Программирование, Лайфхаки для гиков] Как сделать полнотекстовую поисковую машину на 150 строках кода Python (перевод)
- [Python, Data Mining, HTML, Визуализация данных] Сравнение ассортимента блюд трёх ресторанов Санкт-Петербурга
- [Python, Программирование, Проектирование и рефакторинг] Python & оптимизация времени и памяти
- [Python, Программирование, Data Mining, Big Data, R] R vs Python в продуктивном контуре
- [Python, Алгоритмы, API, 1С] Tesseract vs таблицы. Распознавание документов. Часть 2
- Перевод на русский язык документации по CPython 3.8.8
- [Python, Big Data, Hadoop] Impala для Python-разработчика на примере определения фрода при анализе трафика в маркетинговой платформе
- [Python, Машинное обучение, Искусственный интеллект, TensorFlow] Нейродайджест: главное из области машинного обучения за март 2021
- [Open source, Программирование, Геоинформационные сервисы, Визуализация данных, Научно-популярное] Google Earth Engine (GEE): ищем золото по всему миру с помощью больших данных и машинного обучения
Теги для поиска: #_python, #_django, #_nginx, #_python3, #_django, #_gunicorn, #_nginx, #_aws, #_python, #_django, #_nginx
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:54
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
ВведениеПосле того, как мы закончили разработку веб-приложения, оно должно быть размещено на хосте, чтобы общественность могла получить доступ к нему из любого места. Мы посмотрим, как развернуть и разместить приложение на экземпляре AWS EC2, используя Nginx в качестве веб-сервера и Gunicorn в качестве WSGI.AWS EC2Amazon Elastic Compute Cloud (Amazon EC2) - это веб-сервис, обеспечивающий масштабируемость вычислительных мощностей в облаке. Мы устанавливаем и размещаем наши веб-приложения на экземпляре EC2 после выбора AMI (OS) по нашему усмотрению. Подробнее об этом мы поговорим в следующих разделах.NGINX Nginx - это веб-сервер с открытым исходным кодом. Мы будем использовать Nginx для сервера наших веб-страниц по мере необходимости.GUNICORN Gunicorn - это серверная реализация интерфейса шлюза Web Server Gateway Interface (WSGI), который обычно используется для запуска веб-приложений Python.WSGI - используется для переадресации запроса с веб-сервера на Python бэкэнд. Мы не будем использовать сервер, который поставляется с django по умолчанию в производстве.
sudo apt-get update
sudo apt install python
sudo apt install python3-pip pip3 install django cd /home/ubuntu/
mkdir Project cd Project mkdir ProjectName cd ProjectName /home/ubuntu/Project/ProjectName GitHub Убедитесь, что ваш код находится в репозитории, чтобы мы могли легко втянуть его в наш экземпляр ec2.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, “static”) Выполните следующие действия, чтобы миграция модели произошла и все статические файлы были собраны в общую папку (путь указан в STATIC_ROOT).
manage.py makemigrations
manage.py migrate manage.py collectstatic sudo apt install nginx
sudo vi default
мы добавим proxy_pass http://0.0.0.0:9000 и укажем путь к нашей статической папке, добавив путь внутри каталога /static/, как указано выше. Убедитесь, что вы собрали все статические файлы в общую папку, запустив команду manage.py collectstatic
sudo service nginx start #to start nginx
sudo service nginx stop #to stop nginx sudo service nginx restart #to restart nginx pip install gunicorn
gunicorn ProjectName.wsgi:application- -bind 0.0.0.0:9000
=========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:54
Часовой пояс: UTC + 5