zoukankan      html  css  js  c++  java
  • 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==2.1

    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
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    NC20565 生日礼物(双指针)
    NC20566 游戏(二分图)
    NC19833 地斗主(dp+矩阵快速幂)
    CF505C Mr. Kitayuta, the Treasure Hunter(dp)
    HDU5493 Queue(线段树)
    HDU5489 Removed Interval (LIS+分治)
    CF1158C Permutation recovery(线段树优化建图)
    NC20811 蓝魔法师(树形dp)
    NC20857 Xor Path(dfs)
    chrony同步时间
  • 原文地址:https://www.cnblogs.com/TodayWind/p/14034623.html
Copyright © 2011-2022 走看看