Это старая версия документа!
apt install uwsgi uwsgi-plugin-python3 -y
[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
добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py
upstream django_%domain_idn% { server unix://run/uwsgi/%domain%.sock; # взаимодействие с uwsgi через Unix-сокет } # конфигурация веб-сервера server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; charset utf-8; error_log %home%/%user%/web/%domain%/logs/error.log debug; access_log %home%/%user%/web/%domain%/logs/access.log combined; # максимальный размер загружаемых на сервер данных client_max_body_size 75M; # обслуживание медиа файлов и статики location /media { alias %home%/%user%/web/%domain%/media; } location /static { alias %home%/%user%/web/%domain%/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; } }
#!/bin/bash # Changing public_html permission user="$1" domain="$2" ip="$3" home_dir="$4" docroot="$5" chmod 755 $docroot domain_dir=$home_dir/$user/web/$domain #$docroot==public_html cd $domain_dir virtualenv -p python3.5 env source env/bin/activate pip install django mkdir mysite django-admin startproject mysite mysite python3.5 mysite/manage.py migrate mkdir media mkdir static text='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;' echo "$text" > mysite/uwsgi_params text1=" [uwsgi] chdir = $domain_dir/mysite # Django wsgi файл module = mysite.wsgi # полный путь к виртуальному окружению home = $domain_dir/env # общие настройки # master master = true # максимальное количество процессов processes = 3 # полный путь к файлу сокета socket = /run/uwsgi/$domain.sock # права доступа к файлу сокета chmod-socket = 664 # очищать окружение от служебных файлов uwsgi по завершению vacuum = true logger = file:$domain_dir/logs/uwsgi.log plugins = python35u,logfile " echo "$text1" > mysite/mysite_uwsgi.ini chown uwsgi: $home_dir/$user/web/$domain/mysite/mysite_uwsgi.ini ln -s $home_dir/$user/web/$domain/mysite/mysite_uwsgi.ini /etc/uwsgi.d/$domain.ini deactivate exit 0
WEB_TEMPLATE='empty' BACKEND_TEMPLATE= PROXY_TEMPLATE='uwsgi-django' DNS_TEMPLATE='default' WEB_DOMAINS='unlimited' WEB_ALIASES='unlimited' DNS_DOMAINS='unlimited' DNS_RECORDS='1' MAIL_DOMAINS='1' MAIL_ACCOUNTS='1' DATABASES='unlimited' CRON_JOBS='unlimited' DISK_QUOTA='1000' BANDWIDTH='1000' NS='ns1.example.ltd,ns2.example.ltd' SHELL='nologin' BACKUPS='1' TIME='13:30:25' DATE='2017-05-11'