Необходимо учесть, что Unit это лишь дополнение к основному серверу Nginx!
В интернете очень мало информации по описанию установки, особенно русскоязычной, поэтому попробую описать весь процесс установки и настройки Nginx Unit на сервер Debian 9 Stratch.
Самые необходимые команды для Unit:
Просмотреть всю конфигурацию
Код: Выделить всё
curl --unix-socket /var/run/control.unit.sock http://localhost/config/
Добавить полную конфигурацию
(для начала переходим в папку с файлом filename.json, затем добавляем)
Код: Выделить всё
curl -X PUT -d @filename.json --unix-socket /var/run/control.unit.sock :/config
Код: Выделить всё
curl -X PUT -d @filename.json --unix-socket /var/run/control.unit.sock http://localhost/config/
Добавить отдельное приложение
Код: Выделить всё
curl -X PUT -d @filename.json --unix-socket /var/run/control.unit.sock http://localhost/config/applications/name_application
Удалить отдельное приложение из конфигурации
Код: Выделить всё
curl -X DELETE --unix-socket /var/run/control.unit.sock 'http://localhost/config/applications/name_app'
Подготовка базы данных (я делал на своем отдельном сервере)
Код: Выделить всё
sudo -u postgres psql
Код: Выделить всё
CREATE DATABASE myproject;
Код: Выделить всё
CREATE USER myprojectuser WITH PASSWORD 'password';
Код: Выделить всё
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
Код: Выделить всё
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
Код: Выделить всё
ALTER ROLE myprojectuser SET timezone TO 'UTC';
Код: Выделить всё
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
Код: Выделить всё
\q
Код: Выделить всё
sudo apt install curl python3-pip python3-dev libpq-dev
Код: Выделить всё
sudo apt install curl python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx
Для начала обновляем pip
Код: Выделить всё
sudo -H pip3 install --upgrade pip
Код: Выделить всё
sudo -H pip3 install virtualenv
Получится примерно такДомен сайта - aishka.ru
Каталог для проекта - aishka
Виртуальная среда - aishkaenv
Проект Django назову - aishkaproject
3. Создаем каталог для хранения приложения и переходим в него/var/www/aishka/
/var/www/aishka/aishkaenv/
/var/www/aishkaproject/
Код: Выделить всё
cd /var/www/
Код: Выделить всё
mkdir aishka
Код: Выделить всё
cd aishka
Код: Выделить всё
virtualenv aishkaenv
5. Включаем виртуальную средуЭта команда создаст каталог aishkaenv в каталоге проекта aishka и установит в нем локальную копию Python и pip. В этом каталоге можно настроить изолированную среду Python для проекта.
Код: Выделить всё
source aishkaenv/bin/activate
Код: Выделить всё
pip install django psycopg2-binary
Создаем и настраиваем проект Django:Вне зависимости от версии Python в виртуальной среде нужно использовать команду pip (не pip3).
1. Создаем наш проект в папке aishka
Код: Выделить всё
django-admin startproject aishkaproject
Код: Выделить всё
nano aishkaproject/aishkaproject/settings.py
Можно вообще разрешить доступ к проекту для всех, просто поставив звездочку * в одинарных кавычках!!ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . ., 'localhost']
3. Затем находим директиву DATABASES и заполняем адрес и доступ к вашему серверу postgresALLOWED_HOSTS = ['*']
Код: Выделить всё
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'aishka',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'ip_address',
'PORT': '',
}
}
ДобавляемSTATIC_URL = '/static/'
Код: Выделить всё
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
1. Перемещаем исходную схему базы данных в базу данных PostgreSQL:
Код: Выделить всё
aishkaproject/manage.py makemigrations
Код: Выделить всё
aishkaproject/manage.py migrate
2. Создаем администратора проекта:(aishkaenv) root@ws02:/var/www/aishka# aishkaproject/manage.py makemigrations
No changes detected
(aishkaenv) root@ws02:/var/www/aishka# aishkaproject/manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
(aishkaenv) root@ws02:/var/www/aishka#
Код: Выделить всё
aishkaproject/manage.py createsuperuser
3. Перемещаем весь статический контент в подготовленный каталог:
Код: Выделить всё
aishkaproject/manage.py collectstatic
Для выхода из виртуального окружения и перехода в обычный режим достаточно набрать:(aishkaenv) root@ws02:/var/www/aishka# aishkaproject/manage.py collectstatic
119 static files copied to '/var/www/aishka/aishkaproject/static'.
(aishkaenv) root@ws02:/var/www/aishka#
Код: Выделить всё
deactivate