Инструменты пользователя

Инструменты сайта


сайты:настройка_django_python3_uwsgi

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
сайты:настройка_django_python3_uwsgi [2017.05.22 08:36] adminсайты:настройка_django_python3_uwsgi [2024.01.29 11:11] (текущий) feser
Строка 2: Строка 2:
  
 ===== Введение ===== ===== Введение =====
-  * python 3.5 из репозитория [[https://ius.io/|IUS]] 
   * 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://centos7.iuscommunity.org/ius-release.rpm -y +
-yum install python35u python35u-pip uwsgi-plugin-python35u gcc python35u-devel -y+
  
-pip3.5 install virtualenv 
-virtualenv -p python3.5 env 
-source env/bin/activate 
-pip install django 
-django-admin startproject mysite . 
-python manage.py migrate 
-</code> 
-===== Ставим uwsgi глобально ===== 
- 
-<code bash> 
-deactivate 
- 
-yum install uwsgi uwsgi-logger-file uwsgi-plugin-python35u -y 
-usermod -a -G uwsgi nginx 
- 
-</code> 
- 
- 
-добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py  
- 
-<code python mysite.wsgi> 
-import os, sys 
-sys.path.append('/home/feser/mysite.ru') 
-os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
-from django.core.wsgi import get_wsgi_application 
-application = get_wsgi_application() 
-</code> 
- 
-<code - uwsgi_params> 
-uwsgi_param  QUERY_STRING       $query_string; 
-uwsgi_param  REQUEST_METHOD     $request_method; 
-uwsgi_param  CONTENT_TYPE       $content_type; 
-uwsgi_param  CONTENT_LENGTH     $content_length; 
- 
-uwsgi_param  REQUEST_URI        $request_uri; 
-uwsgi_param  PATH_INFO          $document_uri; 
-uwsgi_param  DOCUMENT_ROOT      $document_root; 
-uwsgi_param  SERVER_PROTOCOL    $server_protocol; 
-uwsgi_param  REQUEST_SCHEME     $scheme; 
-uwsgi_param  HTTPS              $https if_not_empty; 
- 
-uwsgi_param  REMOTE_ADDR        $remote_addr; 
-uwsgi_param  REMOTE_PORT        $remote_port; 
-uwsgi_param  SERVER_PORT        $server_port; 
-uwsgi_param  SERVER_NAME        $server_name; 
-</code> 
  
-<code bash mysite_uwsgi.ini> +<code bash /etc/uwsgi/apps-available/myprodject.ini>
-#mysite_uwsgi.ini+
 [uwsgi] [uwsgi]
 +plugins       = python3
 +virtualenv    = /var/www/myprodject/env
 +chdir         = /var/www//myprodject/myprodject
 +env           = DJANGO_SETTINGS_MODULE=myprodject.settings
 +module        = django.core.wsgi:get_wsgi_application()
 +py-autoreload = 1
  
-# Настройки, связанные с Django 
-# Корневая папка проекта (полный путь) 
-chdir           = /home/dj/web/dj.jobber.cf/mysite 
-# Django wsgi файл 
-module          = mysite.wsgi 
-# полный путь к виртуальному окружению 
-home            = /home/dj/web/dj.jobber.cf/env 
- 
-# общие настройки 
-# master 
-master          = true 
-# максимальное количество процессов 
-processes       = 3 
-# полный путь к файлу сокета 
-socket          = /tmp/uwsgi.sock 
-# права доступа к файлу сокета 
- chmod-socket    = 664 
-# очищать окружение от служебных файлов uwsgi по завершению 
-vacuum          = true 
- 
-logger = file:/home/dj/web/dj.jobber.cf/logs/uwsgi.log 
- 
-plugins = python35u,logfile 
 </code> </code>
  
-== Чтобы uwsgi смог загрузить настройки вассалов == +<code - /etc/logrotate.d/uwsgi> 
-<code+"/var/log/uwsgi/app/*.log" { 
-chown uwsgi: mysite_uwsgi.ini +  copytruncate 
-</code> +  daily 
- +  rotate 5 
-== Ссылки для каждого вассала == +  compress 
-  ln -s /home/dj/web/dj.jobber.cf/mysite/mysite_uwsgi.ini /etc/uwsgi.d/mysite.ru.ini +  delaycompress 
- +  missingok 
-== Написано по мотивам == +  notifempty
-[[https://habrahabr.ru/post/226419/|Django на productionuWSGI + nginx. Подробное руководство]] +
- +
-===== Дополнение к VestaCP ===== +
- +
-== Apache не используется для него создадим пустой файл-шаболон == +
-/usr/local/vesta/data/templates/web/httpd/empty.tpl +
- +
-== Nginx - шаблоны == +
-<code - /usr/local/vesta/data/templates/web/nginx/uwsgi-django.tpl> +
-upstream django_%domain_idn% { +
-    server unix://tmp/uwsgi-%domain%.sock; # взаимодействие с uwsgi через Unix-сокет+
 } }
  
-# конфигурация веб-сервера +</code>
-server { +
-    listen      %ip%:%proxy_port%; +
-    server_name    %domain_idn% %alias_idn%; +
-    charset     utf-8;+
  
-    # максимальный размер загружаемых на сервер данных +===== Финальные настройки Django приложения ===== 
-    client_max_body_size 75M;+добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py 
  
-    # обслуживание медиа файлов и статики 
-    location /media  { 
-        alias %home%/%user%/web/%domain%/mysite/media; 
-    } 
  
-    location /static { 
-        alias %home%/%user%/web/%domain%/mysite/static; 
  
-    } 
  
- 
-    location ~ /\.ht    {return 404;} 
-    location ~ /\.svn/  {return 404;} 
-    location ~ /\.git/  {return 404;} 
-    location ~ /\.hg/   {return 404;} 
-    location ~ /\.bzr/  {return 404;} 
- 
- 
- 
-    # Остальные запросы перенаправляются в Django приложение 
-    location / { 
-        uwsgi_pass  django_%domain_idn%; 
-        include     %home%/%user%/web/%domain%/mysite/uwsgi_params; 
-    } 
-} 
- 
-</code> 
- 
-<code - /usr/local/vesta/data/templates/web/nginx/uwsgi-django.sh> 
-</code> 
сайты/настройка_django_python3_uwsgi.1495442210.txt.gz · Последнее изменение: 2017.05.22 08:36 — admin