码迷,mamicode.com
首页 > 其他好文 > 详细

nginx+uwsgi部署Django

时间:2019-06-10 20:00:59      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:int   cto   sch   include   HERE   min   mys   程序   pattern   

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 = 0.0.0.0:8000
#the local unix socket file than commnuincate to Nginx
socket = /data/mysite/mysit.socket
# 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;
        proxy_pass http://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;  
 }

nginx 连接uwsgi一共有三种方式

#方式一: 
uwsgi.ini 里面指定为http = 127.0.0.1:8000
#nginx的配置文件里面需要写
proxy_pass http://127.0.0.1:8000;
#方式二:
uwsgi.ini里面指定为socket = 127.0.0.1:8000
#nginx的配置文件需要写 
include /etc/nginx/uwsgi.conf;
uwsgi_pass 127.0.0.0:8000;
#方式三:
uwsgi.ini里面指定为socket = /data/mysite/mysite.socket
#nginx的配置文件需要写 
include /etc/nginx/uwsgi.conf;
uwsgi_pass unix:/data/mysite/mysite.socket;

 

14.执行命令迁移nginx静态文件

STATIC_ROOT = os.path.join(BASE_DIR, "static/")
python manage.py collectstatic

15.查看效果

nginx+uwsgi部署Django

标签:int   cto   sch   include   HERE   min   mys   程序   pattern   

原文地址:https://www.cnblogs.com/q455674496/p/10999784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!