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

  • 相关阅读:
    a sample of if_nametoindex
    ssh 报 You don't exist, go away
    VMware网卡类型说明及修改
    warning: dereferencing typepunned pointer will break strictaliasing rules(20120613 13:11:02)
    关于字节序和比特序 Little Endian Big Endian
    C语言 运行codeblocks 没有反应
    邻接矩阵作为主要存储结构
    菜鸟学习 MFC
    中国特色工作流引擎设计考虑因素
    如何实现通过汉字的拼音或首拼快速检索(含部分源码)
  • 原文地址:https://www.cnblogs.com/q455674496/p/10999784.html
Copyright © 2011-2022 走看看