zoukankan      html  css  js  c++  java
  • Django + Uwsgi + Nginx 的生产环境部署

    一、安装uwsgi

    uwsgi是python的一个模块,安装uwsgi只需简单的pip命令就可以了pip3 install uwsgi

    二、基于uwsgi+django的实现

    使用命令启动uwsgi

    • 切换至django项目

    • 命令测试启动
      uwsgi --http 127.0.0.1:8000 --file teacher/wsgi.py --static-map=/static=static
      参数说明:

    • --http 这个就和runserver一样指定IP 端口

    • --file 这个文件就里有一个反射,如果你在调用他的时候没有指定Web Server就使用默认的

    • --static 做一个映射,指定静态文件

    三、使用uwsgi配置文件启动django项目

    新建script目录,创建uwsgi.ini文件,配置如下:

    # uwsig使用配置文件启动
    [uwsgi]
    # 项目目录
    chdir=/home/eric/blog/DjangoBlog
    # 指定项目的application
    module=DjangoBlog.wsgi:application
    # 指定sock的文件路径       
    socket=/home/eric/blog/script/uwsgi.sock
    # 进程个数       
    workers=5
    pidfile=/home/eric/blog/script/uwsgi.pid
    # 指定IP端口     
    http=0.0.0.0:65321
    # 指定静态文件
    static-map=/static=/home/eric/blog/DjangoBlog/collectedstatic
    # 启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 启用主进程
    master=true
    # 自动移除unix Socket和pid文件当服务停止的时候
    vacuum=true
    # 序列化接受的内容,如果可能的话
    thunder-lock=true
    # 启用线程
    enable-threads=true
    # 设置自中断时间
    harakiri=30
    # 设置缓冲
    post-buffering=4096
    # 设置日志目录
    daemonize=/home/eric/blog/script/uwsgi.log
    

    启动项目:
    uwsgi --ini wsgi.ini
    至此,uwsgi+django就完美结合了,但是,光有uwsgi还不够,uwsgi处理动态请求能力高,但对于静态请求(如static文件,css,js文件等)处理能力差,此时就要结合nginx一起使用

    四、安装Nginx

    • sudo apt-get install nginx
      编辑配置文件
    • sudo vim /etc/nginx/sites-available/blog.conf
    server {
        listen      8000;
        server_name 116.62.196.154;
        charset     utf-8;
     
        client_max_body_size 75M;
     
        location /static {
            alias /home/eric/blog/DjangoBlog/collectedstatic;
        }
     
        location / {
            uwsgi_pass  unix:/home/eric/blog/script/uwsgi.sock;
            include     /etc/nginx/uwsgi_params;
        }
    }
    

    激活网站:
    sudo ln -s /etc/nginx/sites-available/zqxt.conf /etc/nginx/sites-enabled/blog.conf
    测试配置语法问题:
    sudo service nginx configtest 或 /path/to/nginx -t
    重启 nginx 服务器:
    sudo service nginx reload 或 sudo service nginx restart 或 /path/to/nginx -s reload

  • 相关阅读:
    java-多个数的和
    大道至简第二章
    大道至简第一章感悟上
    Tools
    LruCache
    Fragment
    科普指纹识别
    Python使用MySQL数据库
    Eclipse中添加PyDev插件
    UniversalAndroidImageLoader出现异常:ImageLoader: Unable to resolve host "https": No address associated with host
  • 原文地址:https://www.cnblogs.com/steinven/p/9271467.html
Copyright © 2011-2022 走看看