Это старая версия документа!
post_max_size=20M upload_max_filesize=20M
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
deactivate yum install uwsgi uwsgi-logger-file uwsgi-plugin-python35u -y usermod -a -G uwsgi nginx
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;
#mysite_uwsgi.ini [uwsgi] # Настройки, связанные с Django # Корневая папка проекта (полный путь) chdir = /home/user/web/www.example.net/mysite # Django wsgi файл module = mysite.wsgi # полный путь к виртуальному окружению home = /home/user/web/www.example.net/env # общие настройки # master master = true # максимальное количество процессов processes = 3 # полный путь к файлу сокета socket = /tmp/uwsgi.sock # права доступа к файлу сокета chmod-socket = 664 # очищать окружение от служебных файлов uwsgi по завершению vacuum = true logger = file:/home/user/web/www.example.net/logs/uwsgi.log plugins = python35u,logfile
chown uwsgi: mysite_uwsgi.ini
ln -s /home/user/web/www.example.net/mysite/mysite_uwsgi.ini /etc/uwsgi.d/mysite.ru.ini
wait_timeout=50 # было 10
добавить имя хоста в секцию 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'
Установить эти пакеты
uwsgi-2.0.18-4.el8.x86_64 uwsgi-logger-syslog-2.0.18-4.el8.x86_64 uwsgi-logger-file-2.0.18-4.el8.x86_64 uwsgi-plugin-python3-2.0.18-4.el8.x86_64 uwsgi-plugin-common-2.0.18-4.el8.x86_64