• nginx 基于uwsgi部署Django


    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;  
     }

    ps: 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.查看效果

  • 相关阅读:
    安卓逆向前置之JAVA学习
    @Controller VS @RestController @RequestBody VS @ResponseBody
    【ArangoDb踩坑】ArangoDb中的大数比较
    我的快排
    记录改造ffmpeg遇到的依赖库问题
    centos7 配置阿里yum源
    记录一个解决GLIBC_2.18 not found的问题
    js 格式化时间 供页面使用
    5G PDU session Establishment
    DPDK performance for USER application
  • 原文地址:https://www.cnblogs.com/yhq123/p/11203828.html
Copyright © 2020-2023  润新知