Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
сайты:настройка_django_python3_uwsgi [2017.05.22 09:25] – admin | сайты:настройка_django_python3_uwsgi [2024.01.29 11:11] (текущий) – feser | ||
---|---|---|---|
Строка 2: | Строка 2: | ||
===== Введение ===== | ===== Введение ===== | ||
- | * python 3.5 из репозитория [[https:// | ||
* python с виртуальным окружением | * python с виртуальным окружением | ||
* проекты поднимаются из-под uwsgi | * проекты поднимаются из-под uwsgi | ||
- | * uwsgi стандартный из Centos | + | * uwsgi стандартный из Debian 12 |
+ | ===== Ставим uwsgi из репозитория ===== | ||
- | ===== Установка python 3.5 на Centos 7.x ===== | + | apt install uwsgi uwsgi-plugin-python3 -y |
- | <code bash> | + | ===== Конфигурационные файлы ===== |
- | yum install https:// | + | |
- | yum install python35u python35u-pip uwsgi-plugin-python35u gcc python35u-devel -y | + | |
- | pip3.5 install virtualenv | ||
- | virtualenv -p python3.5 env | ||
- | source env/ | ||
- | pip install django | ||
- | django-admin startproject mysite . | ||
- | python manage.py migrate | ||
- | </ | ||
- | ===== Ставим uwsgi глобально ===== | ||
- | |||
- | <code bash> | ||
- | deactivate | ||
- | |||
- | yum install uwsgi uwsgi-logger-file uwsgi-plugin-python35u -y | ||
- | usermod -a -G uwsgi nginx | ||
- | |||
- | </ | ||
- | |||
- | |||
- | добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py | ||
- | |||
- | <code python mysite.wsgi> | ||
- | import os, sys | ||
- | sys.path.append('/ | ||
- | os.environ[' | ||
- | from django.core.wsgi import get_wsgi_application | ||
- | application = get_wsgi_application() | ||
- | </ | ||
- | |||
- | <code - uwsgi_params> | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | </ | ||
- | <code bash mysite_uwsgi.ini> | + | <code bash / |
- | # | + | |
[uwsgi] | [uwsgi] | ||
+ | plugins | ||
+ | virtualenv | ||
+ | chdir = / | ||
+ | env = DJANGO_SETTINGS_MODULE=myprodject.settings | ||
+ | module | ||
+ | py-autoreload = 1 | ||
- | # Настройки, | ||
- | # Корневая папка проекта (полный путь) | ||
- | chdir = / | ||
- | # Django wsgi файл | ||
- | module | ||
- | # полный путь к виртуальному окружению | ||
- | home = / | ||
- | |||
- | # общие настройки | ||
- | # master | ||
- | master | ||
- | # максимальное количество процессов | ||
- | processes | ||
- | # полный путь к файлу сокета | ||
- | socket | ||
- | # права доступа к файлу сокета | ||
- | | ||
- | # очищать окружение от служебных файлов uwsgi по завершению | ||
- | vacuum | ||
- | |||
- | logger = file:/ | ||
- | |||
- | plugins = python35u, | ||
</ | </ | ||
- | == Чтобы uwsgi смог загрузить настройки вассалов == | + | <code - /etc/logrotate.d/uwsgi> |
- | <code> | + | "/var/log/uwsgi/app/*.log" { |
- | chown uwsgi: mysite_uwsgi.ini | + | |
- | </ | + | daily |
- | + | | |
- | == Ссылки для каждого вассала == | + | |
- | ln -s / | + | |
- | + | | |
- | == Написано по мотивам == | + | |
- | [[https://habrahabr.ru/post/226419/|Django на production. uWSGI + nginx. Подробное руководство]] | + | |
- | + | ||
- | ===== Дополнение к VestaCP ===== | + | |
- | + | ||
- | == Apache не используется для него создадим пустой файл-шаболон с переводом строки == | + | |
- | / | + | |
- | + | ||
- | == Nginx - шаблоны == | + | |
- | <code - / | + | |
- | + | ||
- | upstream django_%domain_idn% { | + | |
- | server unix:// | + | |
} | } | ||
- | # конфигурация веб-сервера | ||
- | server { | ||
- | listen | ||
- | server_name | ||
- | charset | ||
- | |||
- | error_log | ||
- | access_log | ||
- | |||
- | # максимальный размер загружаемых на сервер данных | ||
- | client_max_body_size 75M; | ||
- | |||
- | # обслуживание медиа файлов и статики | ||
- | location / | ||
- | alias %home%/ | ||
- | } | ||
- | |||
- | location /static { | ||
- | alias %home%/ | ||
- | } | ||
- | |||
- | |||
- | location ~ /\.ht {return 404;} | ||
- | location ~ / | ||
- | location ~ / | ||
- | location ~ / | ||
- | location ~ / | ||
- | |||
- | |||
- | |||
- | # Остальные запросы перенаправляются в Django приложение | ||
- | location / { | ||
- | uwsgi_pass | ||
- | include | ||
- | } | ||
- | } | ||
</ | </ | ||
- | <code - / | + | ===== Финальные настройки Django приложения ===== |
- | # | + | добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py |
- | # Changing public_html permission | + | |
- | user=" | + | |
- | domain=" | + | |
- | ip=" | + | |
- | home_dir=" | + | |
- | docroot=" | + | |
- | chmod 755 $docroot | ||
- | domain_dir=$home_dir/ | ||
- | # | ||
- | cd $domain_dir | ||
- | |||
- | virtualenv -p python3.5 env | ||
- | source env/ | ||
- | pip install django | ||
- | |||
- | mkdir mysite | ||
- | |||
- | django-admin startproject mysite mysite | ||
- | python3.5 mysite/ | ||
- | |||
- | mkdir mysite/ | ||
- | mkdir mysite/ | ||
- | |||
- | |||
- | text=' | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | echo " | ||
- | |||
- | text1=" | ||
- | [uwsgi] | ||
- | |||
- | chdir = $domain_dir/ | ||
- | # Django wsgi файл | ||
- | module | ||
- | # полный путь к виртуальному окружению | ||
- | home = $domain_dir/ | ||
- | |||
- | # общие настройки | ||
- | # master | ||
- | master | ||
- | # максимальное количество процессов | ||
- | processes | ||
- | # полный путь к файлу сокета | ||
- | socket | ||
- | # права доступа к файлу сокета | ||
- | | ||
- | # очищать окружение от служебных файлов uwsgi по завершению | ||
- | | ||
- | |||
- | logger = file: | ||
- | plugins = python35u, | ||
- | " | ||
- | |||
- | echo " | ||
- | |||
- | chown uwsgi: $home_dir/ | ||
- | ln -s $home_dir/ | ||
- | |||
- | deactivate | ||
- | |||
- | exit 0 | ||
- | </ |