news
Serverspace в «Рейтинге провайдеров IaaS Enterprise 2023» от Market.CNews
БС
3 февраля 2023
Обновлено 24 июля 2023

Как настроить систему под проект Django (PostgreSQL + Ngnix + Gunicorn) на Ubuntu

Linux Nginx Ubuntu

Введение

Django — это бесплатный и открытый фреймворк для разработки веб-приложений на языке Python. Он предоставляет мощные инструменты для разработки полноценных веб-сайтов и веб-приложений. Он позволяет разработчикам создавать приложения быстро и эффективно без потери качества.
Django славится своей универсальностью и мощью в веб-разработке. Это мощный фреймворк для создания приложений на Python, который помогает сократить время разработки с его библиотекой инструментов и модулей. Он также известен своими мощными функциями шаблонизации и автоматического построения URL. Этот фреймворк также обеспечивает хорошую безопасность приложений, так как он автоматически проверяет входящие данные и предотвращает атаки.

Сравнение Django с другими фреймворками

  • Flask (Python) Недостатки: приходится писать большую часть кода самому и недостаточно инструментов для больших проектов;
  • Ruby on Rails Недостатки: медленный старт, высокая нагрузка на память и высокий порог для входа;
  • Pyramid Недостатки: сложная настройка и недостаточно инструментов для больших проектов;
  • Laravel (PHP) Недостатки: сложен в конфигурации и нет удобного средства для построения «БД».

PostgreSQL славится своей высокой надежностью и производительностью. Он также имеет расширенные возможности для анализа данных, включая аналитические функции и инструменты для работы с геоспатиализацией. Также существует широкий выбор плагинов, которые могут дополнить его функциональность.
Gunicorn славится своей легкостью использования и высокой производительностью. Это простой диспетчер процессов Python, который позволяет обрабатывать множество запросов на одном сервере. Gunicorn имеет множество встроенных функций, таких как поддержка протокола HTTP/1.1, автоматическое перезапускание и масштабирование воркеров. Он также может использоваться в сочетании с другими веб-фреймворками, такими как Django и Flask.

Nginx — это один из наиболее популярных и надежных веб-серверов. Он прост в установке и настройке, имеет высокую производительность и низкое использование ресурсов, поддерживает веб-приложения и динамические веб-сайты, а также имеет много различных функций, включая отдачу статического контента, проксирование, URL-перенаправление и маршрутизацию. В основном он может быть использован для обработки веб-трафика, а также для обеспечения отказоустойчивости и высокой производительности.

Начало работы

Обновите пакеты ПО.

sudo apt update

Установите следующее ПО.

sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl

Настройка БД

Выполняем вход в Postgres.

sudo -u postgres psql

Команда чтобы создать базу данных для проекта.

CREATE DATABASE «yournameproject»;

Создаем «БД», пользователя, а так же произведем оптимизацию нашей «бд» для ускорения ее работы.

CREATE DATABASE «yournameproject»

База данных была создана, требуется внести изменения по определенным параметрам.

Настройка БД PostgreSQL

CREATE USER «YourUsername» WITH PASSWORD ‘password’;

Юзер был успешно создан, и я решил оптимизировать «бд» изменив параметры проделал оптимизацию настроек для ускорения работы нашей «БД».

Оптимизация настроек БД PostgreSQL

ALTER ROLE «Yourproject» SET timezone TO 'UTC';
ALTER ROLE «Yourproject» SET default_transaction_isolation TO 'read committed';
ALTER ROLE «Yourproject» SET client_encoding TO 'utf8';

Эти параметры созданы для того, чтобы дать пользователю учетную запись для подключения к базе данных с паролем.

Далее роль для пользователя будет настроена с временной зоной по умолчанию UTC, изоляцией транзакций по умолчанию «Чтение совершенно» и кодировкой клиента по умолчанию UTF-8.

Выдал права пользователю для администрирования «БД».

Настройка прав пользователя PostgreSQL

GRANT ALL PRIVILEGES ON DATABASE «Yourproject» TO «myprojectuser»;

Создание рабочей среды для проекта

Эта команда обновляет и устанавливает программу pip и virtualenv. Команда sudo -H позволяет запускать программу от имени пользователя с повышенными правами доступа.

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

После установки инструмента «virtualenv», я начинаю формировать область под свой проект.

mkdir ~/yourprojectdir
cd ~/myprojectdir

Создание области для проекта Django

В каталоге создал виртуальную среду.

virtualenv yourprojectenv

Создание виртуальной среды

virtualenv — это команда, позволяющая создавать изолированные окружения для различных проектов и использовать разные версии библиотек и приложений.

Это позволяет поддерживать одинаковый стек технологий для всех проектов в организации, снижая риск несовместимости и ошибок в работе.

В этом каталоге будет сразу находится локальная версия Python и система управления пакетами.

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

source yourprojectenv/bin/activate

Командная строка изменится, показывая, что теперь вы работаете в виртуальной среде Python.

Переключение на виртуальную среду Python

Как запустили виртуальную среду, установите необходимые компоненты.

pip install django gunicorn psycopg2-binary

Установка компонентов

Добавление проекта

Для фреймворка уже был создан каталог проекта, требуется указать по какому пути будет проходить инициализация, ведь во втором каталоге располагается подкаталог, внутри которого размещен код со скриптом управления.

django-admin startproject yourproject ~/yourprojectdir

После, нужно поменять пару параметров в созданном файле проекта. Открываем файл с настройками через любой текстовый редактор.

nano ~/yourprojectdir/yourproject/settings.py

Теперь необходимо поменять параметры.

Параметры проекта

Затем пролистав ниже, находим раздел, который предоставляет пароль, наименование «БД».

Так же ищем строку DATABASES, сконфигурируйте эту строку под свои данные.

Настройка параметров БД

Пролистнув ниже, добавьте параметр который укажет где хранить статичные файлы.

Настройка хранения статических файлов

Завершающая настройка

Используя скрипты управления переношу схему «БД».

~/yourprojectdir/manage.py makemigrations
~/yourprojectdir/manage.py migrate

Создал административного пользователя для проекта.

~/yourprojectdir/manage.py createsuperuser

Собрал весь статичный контент в заданном каталоге.

~/myprojectdir/manage.py collectstatic

Команду нужно подтвердить. После, все файлы переместятся в каталог «static» проекта.

Так же открываем порт, который будет использоваться для проекта.

sudo ufw allow 2222

Проверка

Проверяем наш проект, перед этим запустив сервер фреймворка.

~/myprojectdir/manage.py runserver your_ip:2222

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

Проверка работы проекта

Авторизовавшись на веб-ресурсе, попадаем в панель управления.

Панель управления Django

Вывод

В этой публикации я разобрал как подготовить систему под операционной системой Ubuntu 20.04 для запуска проекта на Django с базой данных Postgres; веб-сервером Gunicorn и настроенным прокси Ngnix.

Оценка:
4 из 5
Аverage rating : 4.7
Оценок: 5
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300

Вам также может быть интересно...