django + uwsgi + nginx

作者: Anlim | 来源:发表于2016-10-09 14:42 被阅读124次

    安装uwsgi

    pip install uwsgi
    

    安装nginx

    apt-get install nginx
    
    在项目目录下创建 app_uwsgi.ini
    [uwsgi]
    
    # Django-related settings
    # the base directory (full path)
    chdir           = /data/www/vhosts/pro/ #项目地址
    # Django's wsgi file
    module          = apps.wsgi  #项目wsgi 地址
    # the virtualenv (full path)
    # home            = /   #virtualenv 项目目录
    
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    processes       = 10
    # the socket (use the full path to be safe
    socket          = /data/www/vhosts/pro/uwsgi.sock #项目sock文件
    # ... with appropriate permissions - may be needed
    chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    
    pidfile          = /data/www/vhosts/pro/uwsgi.pid  #pid文件地址
    
    plugins = python  #不加会出现502
    
    buffer-size=32768 #  解决 invalid request block size: 21573 (max 4096)...skip错误
    
    创建 uwsgi_params 文件
    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 UWSGI_SCHEME        $scheme;
    
    uwsgi_param REMOTE_ADDR         $remote_addr;
    uwsgi_param REMOTE_PORT         $remote_port;
    uwsgi_param SERVER_PORT         $server_port;
    uwsgi_param SERVER_NAME         $server_name;
    

    nginx 配置

    upstream django {
        server unix:///data/www/vhosts/pro/uwsgi.sock;
    }
    
    server {
        listen 80; 
        listen 443;
        server_name www.xx.com xx.com;
        access_log /var/log/nginx/website.net.access_log;
        error_log /var/log/nginx/website.net.error_log;
    
        location /static/ { # MEDIA_URL
            alias /data/www/vhosts/pro/static/; # MEDIA_ROOT
            expires 5d; 
            client_max_body_size    1000m;
        }   
    
        location /media/ { # MEDIA_URL
            alias /data/www/vhosts/pro/media/; # MEDIA_ROOT
            expires 5d; 
        }   
    
    
        location /static/admin/ { # MEDIA_URL
            alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/; # MEDIA_ROOT
            expires 90d;
        }   
    
    
        location / { 
            #proxy_pass http://website/;
            uwsgi_pass django;
            include /data/www/vhosts/pro/uwsgi_params;
        }   
    
    }
    

    注意: /data/www/vhosts/pro/ 目录为你的项目路径

    启动命令

    uwsgi --ini apps_uwsgi.ini
    

    重启服务

    uwsgi --reload uwsgi.pid
    

    相关文章

      网友评论

        本文标题:django + uwsgi + nginx

        本文链接:https://www.haomeiwen.com/subject/yogpyttx.html