nginx 基於uwsgi部署Django
阿新 • • 發佈:2019-01-10
1.安裝nginx
yum install -y nginx(需要epel源)
2.安裝環境
可以考慮使用虛擬化環境,本處不再使用
3.安裝uwsgi
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
pip install uwsgi
4.安裝django
pip install django==1.11
5.建立django專案
django-admin startproject mysite
6.建立app
python manage.py startapp app01
7.修改mysite/settings.py
ALLOWED_HOSTS = ['*']
8.修改mysite/urls.py
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello_django/', views.hello),
]
9.修改app01/views.py
from django.shortcuts import render,HttpResponse # Create your views here. def hello(request): print('request is :',request) return HttpResponse('django is ok ')
10.啟動程式
uwsgi --http :8000 --module mysite.wsgi
11.uwsgi配置檔案
uwsgi支援ini、xml等多種配置方式,本文以 ini 為例, 在/etc/目錄下新建uwsgi_nginx.ini,新增如下配置: [uwsgi] http = :8000 #the local unix socket file than commnuincate to Nginx socket = 0.0.0.0:8000 # the base directory (full path) chdir = /data/mysite # Django's wsgi file wsgi-file = mysite/wsgi.py # maximum number of worker processes processes = 4 #thread numbers startched in each worker process threads = 2 # clear environment on exit vacuum = true daemonize = /data/mysite/uwsgi.log py-autoreload=1
11.準備配置檔案
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;
12.修改配置檔案許可權
chown nginx.root uwsgi_params
13.修改nginx配置檔案
location / {
include /data/mysite/conf/uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
root html;
index index.html index.htm;
}
}
location /static{
alias /data/mysite/static;
}
#nginx處理媒體資源
location /media{
alias /data/mysite/media;
}
14.執行命令遷移nginx靜態檔案
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
python manage.py collectstatic
15.檢視效果